Plists sont vraiment utiles pour de nombreux cas:
+ (NSMutableDictionary*) containerDictionary {
NSString *path = [[NSBundle mainBundle] bundlePath];
NSString *finalPath = [path stringByAppendingPathComponent:@"ContainerGraphics.plist"];
NSMutableDictionary *plistData = [NSMutableDictionary dictionaryWithContentsOfFile:finalPath];
return plistData;
}
Cette charge un fichier plist (liste de propriétés) appelée "ContainerGraphics.plist" de mon paquet d'applications.
Le fichier plist est en fait un fichier XML. Vous pouvez en créer un dans Xcode en sélectionnant "nouveau fichier" -> "resource" -> "Property list".
Vous ne dites pas vraiment ce que vous ne comprenez pas, donc s'il y a quelque chose de spécifique que vous trouvez difficile à comprendre, s'il vous plaît :) élaborer
EDIT:
Avec le plist vous post, utilisez mon approche ci-dessus pour "charger" le fichier plist. Ensuite, il est un NSDictionary de NSDictionaries ..
Donc, pour se rendre à la « Apple » dictionnaire vous allez:
NSDictionary *appleDictionary = [plistData objectForKey:@"Apple"];
Ce qui signifie quelque chose le long - aller dans la liste et récupérer le dictionnaire « Apple ».
Maintenant, pour obtenir les valeurs d'image et la description que vous iriez:
NSString *imagePath = [appleDictionary objectForKey:@"image"];
NSString *descriptionString = [appleDictionary objectForKey:@"description"];
C'est à peu près ce qu'il ya à faire.
Si vous avez un tableView qui doit être rempli avec ces données, il y a un problème! Les données dans un NSDictionary n'ont pas d'ordre. Vous ne pouvez donc pas simplement référencer [dictionary objectAtIndex: indexPath.row] comme vous le feriez avec un tableau de données pour un tableauView.
Ce que vous faites ensuite est d'obtenir d'abord le plistData, comme dans mon premier exemple. (faites-le dans viewDidLoad). Ensuite, vous extrayez toutes les clés du dictionnaire plistData - notez que le «dictionnaire supérieur est spécifique», «Apple», «Orange», etc. ne correspond pas aux valeurs que vous souhaitez coder en dur dans votre application. Mais, les dictionnaires à l'intérieur de ces dictionnaires sont d'ordre général, l'image, la description ...
Alors:
NSArray *allKeys = [plistData allKeys];
le tableau allKey contient maintenant les clés (Apple, Orange, etc.) pour obtenir les NSDictionaries dans le plistData.
Dans la méthode cellForRowAtIndexPath vous pouvez maintenant aller:
NSDictionary *dictionaryForCurrentCell = [plistData objectForKey:[allKeys objectAtIndex:indexPath.row]];
[cell.textLabel setText:[dictionaryForCurrentCell objectForKey:@"image"]];
[cell.detailLabel setText:[dictionaryForCurrentCell objectForKey:@"description"]];
Hope it helps :)
Pouvez-vous fournir plus d'informations? Que voulez-vous dire en utilisant des plits pour le faire? – ughoavgfhw
Juste remarqué une faute de frappe dans mon dernier commentaire. Je voulais dire des plistes, pas des plis. – ughoavgfhw
je vais modifier ma question. – Souljacker