У меня есть метод, который называется addHighScore. Когда пользователь хочет выйти из игры, он может сохранить свой счет. В папке ресурсов я создал highScore.plist и заполнил его одной записью. Структура:
item 1 (array)
Name (dictionary, string)
Level (dictionary, string)
Score(dictionary, Number)
Моя проблема заключается в следующем: когда я запускаю это в симуляторе, после того, как я загружаю arrHighScores и затем добавляю словарь newScore, все выглядит нормально, и записи добавляются (и показываются с помощью оператора NSLog), но это ТОЛЬКО до тех пор, пока как приложение работает. Как только я выйду, вернусь, единственная существующая запись - та, которую я ввел вручную.
Когда я запускаю это на устройстве (iPhone), он никогда не показывает добавленные записи, даже когда он еще находится в игре. Я рассмотрел почти каждый пример, касающийся NSDictionary, и не могу понять, что происходит не так.
Любые идеи или предложения приветствуются. Заранее спасибо за любую помощь. (Гео ...)
Мой метод выглядит так:
-(IBAction) addHighScore {
NSString *myPath = [[NSBundle mainBundle] pathForResource:@"highScores" ofType:@"plist"];
NSLog(@"myPath: %@", myPath);
NSMutableArray *arrHighScores = [[NSMutableArray alloc] initWithContentsOfFile:myPath];
NSMutableDictionary *newScore = [[NSMutableDictionary alloc] init];
[newScore setValue:@"Geo" forKey:@"Name"];
[newScore setValue:lblLevel.text forKey:@"Level"];
[newScore setValue:[NSNumber numberWithDouble: dblScore] forKey:@"Score"];
[arrHighScores addObject:newScore];
for (int i = 0; i < [arrHighScores count]; i++) {
NSLog(@"Retreiving (%d) --> %@", i, [arrHighScores objectAtIndex:i]);
}
[arrHighScores writeToFile:myPath atomically:YES];
NSMutableArray *tmpArray2 = [[NSMutableArray alloc] initWithContentsOfFile:myPath];
NSSortDescriptor *mySorter = [[NSSortDescriptor alloc] initWithKey:@"Score" ascending:YES];
[tmpArray2 sortUsingDescriptors:[NSArray arrayWithObject:mySorter]];
for (int i = 0; i < [tmpArray2 count]; i++) {
NSLog(@"Retreiving (%d) --> %@", i, [tmpArray2 objectAtIndex:i]);
}
[arrHighScores release];
[tmpArray2 release];
[mySorter release];
[newScore release];
}