2009-07-01 13 views
15

Próbuję zaimplementować stan Zapisz dla mojej aplikacji na iPhone'a.Odczytywanie danych z pliku plist

Mam plik plist nazwie SaveData.plist i mogę go odczytać w następujący poprzez

NSString *pListPath2 = [bundle pathForResource:@"SaveData" ofType:@"plist"]; 
NSDictionary *dictionary2 = [[NSDictionary alloc] initWithContentsOfFile:pListPath2]; 

self.SaveData = dictionary2; 
[dictionary release]; 

Plik PLIST ma członków

SavedGame która jest logiczna powiedzieć app, jeśli tam jest naprawdę ważne dane tutaj (jeśli nie zamknąć aplikację w środku gry, nie chcę ich za punkt przywracania.

wynik, który jest NSNumber. Czas który jest NSNumber

Playfield, który jest 16-elementową tablicą NSNumbers

Jak uzyskać dostęp do tych elementów wewnątrz NSDictionary?

Odpowiedz

26

Spróbuj [NSDictionary objectForKey:]

gdzie klucz jest nazwą elementu w plist.

Na przykład:

BOOL save = [[dictionary2 objectForKey:@"SavedGame"] boolValue]; 

będzie przechowywać obiekt przechowywane w plist dla kluczowej SavedGame do nowego BOOL o nazwie Zapisz.

sobie wyobrazić, że SavedGame Boolean jest faktycznie przechowywane w NSDictionary jako NSNumber, stąd wykorzystanie boolValue aby uzyskać wartość logiczna tego NSNumber.

Wypróbuj tę dokumentację: Apple NSDictionary Reference.

+5

Zawsze używaj -objectForKey: jeśli dzwonisz bezpośrednio - jeśli czytasz dokumenty, -valueForKey: jest używany do obserwacji wartości kluczowej i wiązania kakao. Nie zwróci złego wyniku, ale w tym przypadku robi niepotrzebną pracę. –

2

Dla Ustawianie Bool Wartość można użyć:

[Dictionary setBool:TRUE forKey:@"preference"];

dla uzyskania wartości Bool można użyć:

[Dictionary boolForKey:@"preference"];

Powiązane problemy