Mam plist w mojej aplikacji na iphone i chcę odczytać i zapisać liczbę całkowitą z mojego pojedynczego do i utworzyć go.Zapis/odczyt pliku plist iPhone
mam to, aby ją przeczytać:
scoreData *score = [scoreData sharedData];
filePath = @"stats.plist";
NSMutableDictionary* plistDict = [[NSMutableDictionary alloc] initWithContentsOfFile:filePath];
score.highScore = [plistDict objectForKey:@"score"];
Następnie napisać do niego:
scoreData *score = [scoreData sharedData];
NSMutableDictionary* plistDict = [[NSMutableDictionary alloc] initWithContentsOfFile:filePath];
[plistDict setValue:score.highScore forKey:@"score"];
[plistDict writeToFile:filePath atomically: YES];
Otrzymuję błąd w obu częściach:
Nieprawidłowy konwersji forma objc_object * do int
i
Niepoprawny formularz konwersji int do objc_object
Doceniam każdą pomoc, dzięki.
Buduje bez błędów nw, co jest świetne! Ale zmienię score.highScore, a następnie całkowicie zakończę aplikację, ponownie uruchomię ją i cofnę do zera, nigdy nie odzyska ona wartości. Doceniłbym pomoc, dzięki. –
Interesujące odkrycie. Myślę, że kod, którego używam, piszę do plist i czytając go, ale tak naprawdę nie zapisuję go, kiedy następnym razem używam aplikacji. Możliwy? Jak mogę to obejść? –
Prawdopodobnie nie działa, ponieważ próbujesz napisać słownik do pliku .plist w pakiecie aplikacji, który jest tylko do odczytu. Powinieneś sprawdzić zwróconą wartość '[plistDict writeToFile: filePath atomically: YES];' (TAK = sukces, NIE = zapis nieudany). Spróbuj napisać plik do ścieżki w folderze dokumentów pakietu aplikacji, czyli do odczytu i zapisu.Można uzyskać ścieżkę dokumentów za pomocą: NSArray * arrayPaths = \t \t NSSearchPathForDirectoriesInDomains ( \t \t \t NSDocumentDirectory, \t \t \t NSUserDomainMask, \t \t \t TAK); \t NSString * docDir = [arrayPaths objectAtIndex: 0]; –