Сохранить набор целых чисел iPhone - PullRequest
1 голос
/ 17 октября 2010

В моей игре я хочу сохранить набор целых чисел, который может просматривать статистика игроков. Например, количество смертей. Это значение, которое я просто увеличиваю на единицу каждый раз, когда игра заканчивается.

Как я могу сохранить это, чтобы иметь его под тем номером при перезапуске игры?

Спасибо.

EDIT:

Хорошо, после прочтения нескольких ответов, я думаю, что писать в список рассылки - путь вперед. Я смотрел на учебники, но скажем, я попробую это:

scoreData *score = [scoreData sharedData];
[dictionary setValue:score.highScore forKey:@"key2"];
[dictionary writeToFile:@"stats.plist" atomically:NO];

Я получил доступ к своему синглтону с моим счетом внутри. Теперь, когда я пытаюсь установить значение, я получаю сообщение об ошибке: я пытаюсь преобразовать int в объект.

Я не уверен, как еще подойти к нему. Это кажется достаточно простым, однако везде, где я выгляжу, похоже, в основном используется один и тот же подход.

Спасибо за помощь до сих пор, больше ценится.

Ответы [ 4 ]

2 голосов
/ 17 октября 2010

Я бы не стал злоупотреблять NSUserDefaults (Apple не одобряла это на WWDC в этом году).Вместо этого, почему бы просто не создать NSMutableDictionary и затем сохранить объекты NSNumber в нем.MutableDictionary легко записывается в файл и легко читается.

1 голос
/ 17 октября 2010

Любое число из множества способов.

Если вы только сохраняете это и, возможно, пару других простых вещей, возможно, лучше использовать пользовательские настройки по умолчанию.

Если, однако, выВы сохраняете гораздо больше элементов, чем несколько, вы можете использовать свой собственный список свойств (если количество элементов меньше 200 или около того).

Если у вас много настроек, якак правило, советую людям взглянуть на Core Data.Это быстро с большим количеством предметов, тогда как другие два, не так много.

0 голосов
/ 17 октября 2010

Try ...

[[NSUserDefaults standardUserDefaults] setInteger:highScore forKey:@"HighScore"];
highScore = [[NSUserDefaults standardUserDefaults] integerForKey:@"HighScore"];
0 голосов
/ 17 октября 2010

Вы можете записать в файл (т.е. обычные функции C fopen() и т. Д.), Можете использовать свои собственные классы и использовать NS(Keyed)Archiver или NSUserDefaults для сохранения данных.

...