Как сохранить переменные после закрытия приложения? - PullRequest
5 голосов
/ 13 июля 2011

Я хочу сохранить некоторые целые числа после закрытия приложения и восстановить их после открытия приложения. Какой самый простой способ сделать это?

Ответы [ 6 ]

16 голосов
/ 13 июля 2011

Вы должны хранить и загружать данные из NSUserDefaults:

http://developer.apple.com/library/IOS/#documentation/Cocoa/Reference/Foundation/Classes/NSUserDefaults_Class/Reference/Reference.html

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
// to store
[defaults setObject:[NSNumber numberWithInt:12345] forKey:@"myKey"];
[defaults synchronize];

// to load
NSNumber *aNumber = [defaults objectForKey:@"myKey"];
NSInteger anInt = [aNumber intValue];
5 голосов
/ 13 июля 2011

Ознакомьтесь с документацией NSUserDefaults . Вы можете установить там произвольные пары ключ-значение, которые (до тех пор, пока вы вызываете общий пользовательский объект по умолчанию -synchronize в какой-то момент до завершения работы вашего приложения) будут сохраняться между запусками.

4 голосов
/ 13 июля 2011

Вы можете сохранить их в NSUserDefaults.Это в основном используется для предпочтений.

[[NSUserDefaults standardUserDefaults] setObject:someInteger forKey:@"someIntegerKey"];
[[NSUserDefaults standardUserDefaults] synchronize];

Вы также можете сохранить их в файл списка свойств, если у вас есть больше данных, которые вы хотите сохранить.

NSDictionary *someDictionary = [NSDictionary dictionaryWithObjectsAndKeys:someInt1, @"someIntKey1", someInt2, @"someIntKey2", nil];

[someDictionary writeToFile:somePath error:&error];

Сохранить припри выходе из приложения поместите любой код в

- (void)applicationWillTerminate:(UIApplication *)application
3 голосов
/ 13 июля 2011

Изучите использование NSUserDefaults. Это работает как словарь, к которому вы можете добавить пары ключ / значение. Вы сохраняете переменные в методах applicationWillTerminate и applicationDidEnterBackground вашего делегата приложения. Вы снова загружаете переменные в applicationDidFinishLoading.

1 голос
/ 13 июля 2011

Самый простой способ - использовать NSUserDefaults.Ваш представитель приложения получит сообщение -applicationWillTerminate:, когда приложение собирается завершить работу, и вы можете записать свои данные в NSUserDefaults (или записать их в свой собственный файл, если объем данных большой).Затем, когда ваше приложение снова запустится, ваш делегат приложения получит -applicationDidFinishLaunching, и вы сможете снова прочитать свои данные.

0 голосов
/ 13 июля 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...