2009-07-16 5 views
0

Il n'y a rien dans le fichier, mais j'ajoute row1 à mon tableau juste après. NSLog me dit que le tableau est vide. Pourquoi row1 n'est-il pas ajouté au tableau? Tous mes autres codes vont bien pour autant que je sache. Mon application a fonctionné quand j'ai mis des valeurs dures dans le tableau. Maintenant que je charge à partir d'un fichier, cela ne fonctionne pas.Ajout d'un objet à un tableau lu à partir d'un fichier

- (void)viewDidLoad { 
//array value 

//NSMutableArray *array; 

NSString *filePath = [self dataFilePath]; 
if ([[NSFileManager defaultManager] fileExistsAtPath:filePath]) 
{ 
NSMutableArray *array/*array*/ = [[NSMutableArray alloc] initWithContentsOfFile:filePath]; 

NSDictionary *row1 = [[NSDictionary alloc] initWithObjectsAndKeys:@"Study", @"Task", @"2 hours", @"Length", @"4", @"Hours", @"0", @"Minutes", @"15", @"Tiredness", nil]; 
[array addObject: row1]; 
self.tasks = array; 

NSLog(@"The contents of the array (file exists) is %@", array); 

[array release]; 
[myTableView reloadData]; 
} 

UIApplication *app = [UIApplication sharedApplication]; 
[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(applicationWillTerminate:) 
              name:UIApplicationWillTerminateNotification 
              object:app]; 
[super viewDidLoad]; 
} 

Aidez-nous!

Merci à l'avance,

Matt

+0

Ne pas oublier de 'release' le tableau et le dictionnaire, puisque vous avez créé chacun d'entre eux en utilisant' alloc' et un Méthode 'init'. Voir le Guide de programmation de gestion de mémoire pour Cocoa: http://developer.apple.com/iphone/library/documentation/Cocoa/Conceptual/MemoryMgmt/ –

Répondre

0

assurez-vous que le délégué tableview et source de données est réglé correctement

1

Deux possibilités que je vois:

  1. L'objet contenant ce code n'est pas correctement configuré comme source de données de la table.

  2. Un fichier existe sur le chemin que vous consultez, mais son contenu ne peut pas être analysé en tant que tableau. Dans ce cas, vous devez frapper la première branche de la clause if, mais initWithContentsOfFile: renverra zéro. Vous pouvez facilement diagnostiquer ceci en vérifiant zéro après avoir appelé cette méthode.

0

Il est difficile de répondre à votre question. Voici deux suggestions:

Lorsque vous postez du code ici, nettoyez-le. Supprimer les commentaires et le formater bien.

Afficher tout votre code. Dans votre code, il peut y avoir beaucoup de choses qui ne vont pas. Peut-être que la propriété self.tasks n'est pas correcte. Peut-être que vous n'avez pas correctement configuré la vue de données. Peut-être n'avez-vous pas implémenté les bonnes méthodes de délégation de vue de table. Il est difficile de dire.

Également, essayez d'éliminer les choses les plus élémentaires. Par exemple, si vous êtes dans le doute si ce tableau est correctement configuré, puis imprimez simplement:

NSLog(@"The contents of the array is %@", array); 
Questions connexes