2011-05-04 4 views
1

Je suis coincé en essayant de comprendre comment cela fonctionne. J'ai une liste de dictionnaires. J'ai besoin de lire chaque dictionnaire séparément dans le tableau et mapper chaque dictionnaire aux cellules dans un tableau. J'ai l'impression que c'est extrêmement simple, mais je n'ai pas réussi à accéder au premier dictionnaire et à écrire chaque paire clé/valeur dans une tableview; puis en réponse au bouton 'suivant', en écrivant le 2ème dictionnaire en tavbeview, puis en 3ème dictionnaire, etc. etc. Je n'ai pas besoin de revenir en arrière, mais je dois aller de l'avant en affichant le contenu de chaque dictionnaire dans tableview. Tous les conseils/échantillons de code seront très appréciés.Lire un dictionnaire plist

Répondre

0

Est-ce que c'est ce que vous voulez dire?

NSDictionary *cellValue = [self.array objectAtIndex:[indexPath row]]; 
NSString *label = [cellValue objectForKey:@"label"]; 
[cell.textLabel setText:label]; 

Le array est initialisé avec le contenu d'un plist. Le plist a un dictionnaire avec une clé appelée label qui peut ensuite être accessible via objectForKey.

Je ne sais pas exactement ce que vous faites pour écrire vos dictionnaires, mais ce que je faisais était de créer une classe personnalisée appelée DataObject ajouté I quelques méthodes comme addNewItem et writeToFile comme ceci:

NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; 
NSString *finalPath = [documentsDirectory stringByAppendingPathComponent:fileTitle]; 

[array writeToFile:finalPath atomically:YES]; 

et addNewItem:(NSString *)label :

NSDictionary *newItem = [[NSDictionary alloc] initWithObjectsAndKeys:label,@"label", nil]; 
[array addObject:newItem]; 
[newItem release]; 
[self writeTask]; 

alors y accéder simplement comme ceci:

DataObject *db = [[DataObject alloc] init]; 
[db addNewItem:youItemTitle]; 
[db release]; 

bien que ce serait très mauvais pour la gestion de la mémoire.