Plists sind für viele Fälle wirklich nützlich:
+ (NSMutableDictionary*) containerDictionary {
NSString *path = [[NSBundle mainBundle] bundlePath];
NSString *finalPath = [path stringByAppendingPathComponent:@"ContainerGraphics.plist"];
NSMutableDictionary *plistData = [NSMutableDictionary dictionaryWithContentsOfFile:finalPath];
return plistData;
}
Dies lädt eine plist-Datei (Property List) namens "ContainerGraphics.plist" von meinem apps Bündel.
Die Plist-Datei ist eigentlich nur eine XML-Datei. Sie können einen in Xcode erstellen, indem Sie "neue Datei" -> "Ressource" -> "Eigenschaftsliste" auswählen.
Sie nicht wirklich sagen, was es Sie nicht verstehen, ist, also wenn es etwas Bestimmtes ist, dass Sie schwer zu begreifen finden, erarbeiten bitte :)
EDIT:
Mit dem plist Sie post, verwende meinen obigen Ansatz, um die PLIST-Datei zu laden. Dann ist es ein NSDictionary von NSDictionaries ..
So zum „Apple“ Wörterbuch erhalten Sie gehen:
NSDictionary *appleDictionary = [plistData objectForKey:@"Apple"];
Was bedeutet, etwas zusammen - in die Liste gehen und das „Apple“ Wörterbuch abrufen.
nun das Bild und Beschreibung Werte erhalten Sie gehen würde:
NSString *imagePath = [appleDictionary objectForKey:@"image"];
NSString *descriptionString = [appleDictionary objectForKey:@"description"];
Das ist ziemlich viel, was es da ist.
Wenn Sie eine Tabelle haben, die mit diesen Daten gefüllt werden muss, gibt es einen Haken! Die Daten in einem NSDictionary haben keine Reihenfolge. Sie können also nicht einfach auf [dictionary objectAtIndex: indexPath.row] verweisen, wie Sie es bei einem Array von Daten für eine tableView tun würden.
Was Sie dann tun, ist, zuerst die plistData zu bekommen, wie in meinem ersten Beispiel. (dies in ViewDidLoad tun). Dann extrahieren Sie alle Schlüssel aus dem PlistData-Wörterbuch - beachten Sie, dass das "Top-Wörterbuch ist spezifisch", Apple, "Orange" usw. nicht Werte, die Sie in Ihre App hardcodieren möchten. Aber die Wörterbücher innerhalb dieser Wörterbücher sind die allgemeinen, Bild, Beschreibung ...
Also:
NSArray *allKeys = [plistData allKeys];
die allKey Array enthält nun Tasten (Apfel, Orange, etc.) auf die NSDictionaries im plistData zu bekommen.
Im cellForRowAtIndexPath Methode können Sie jetzt gehen:
NSDictionary *dictionaryForCurrentCell = [plistData objectForKey:[allKeys objectAtIndex:indexPath.row]];
[cell.textLabel setText:[dictionaryForCurrentCell objectForKey:@"image"]];
[cell.detailLabel setText:[dictionaryForCurrentCell objectForKey:@"description"]];
Hoffe, es hilft :)
Können Sie weitere Informationen zur Verfügung stellen? Was meinst du mit plits, um es zu tun? – ughoavgfhw
Ich habe gerade einen Tippfehler in meinem letzten Kommentar bemerkt. Ich meinte plists, nicht plits. – ughoavgfhw
Ich werde meine Frage bearbeiten. – Souljacker