Как сохранить настройки приложения при обновлении пользователем новой версии - PullRequest
0 голосов
/ 17 февраля 2012

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

Позвольте мне объяснить это на простом примере:

Версия 1.0 моего приложения имеет переключатель, который включен по умолчанию, но пользователь может установить OFF. В App Store я собираюсь опубликовать следующую версию - 1.1 - с некоторыми изменениями, но она также имеет тот же переключатель. Когда пользователь обновляет его с устройства, значение переключателя должно оставаться выключенным.

Как мне добиться этого, пожалуйста, ответьте мне своими ценными комментариями ...

Спасибо заранее ...

Ответы [ 5 ]

2 голосов
/ 17 февраля 2012

Вы можете просто использовать NSUserDefaults

Приложение 1.1 может легко прочитать то, что написал Приложение 1.0.

1 голос
/ 05 ноября 2012

Когда вы обновляете свое приложение до более новой версии, то UserDefault не изменится (если приложение не удаляется). Тогда мы должны определить, обновлено ли ваше приложение до более новой версии. В моем приложении я поддерживал переменную в UserDefault, такую ​​как «CurrentAppVersion», затем, когда приложение запускается, я проверяю currentVersion, получаемый из Bundle приложения, если они различаются и обновляются, затем я переношу свои настройки в новую версию и обновлю «CurrentAppVersion» также в новой версии.

Ссылка: https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSUserDefaults_Class/Reference/Reference.html

NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults];
NSString *currentAppVersion = [userDefault objectForKey:@"CurrentAppVersion"];

NSString *appVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"];
NSLog(@"current version: %@, appversion: %@", currentAppVersion, appVersion);

if ([currentAppVersion isEqualToString:appVersion] == NO) {
    // Your app has just updated to new version, migrate your app settings.
} else {
    // NO, do nothings with your app settings.
}

Надеюсь, это сильно вам поможет, :)

0 голосов
/ 17 февраля 2012

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

0 голосов
/ 17 февраля 2012

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

0 голосов
/ 17 февраля 2012

Содержимое в каталоге документов приложения и каталоге библиотеки не изменится после обновления приложения.Поэтому вам нужно просто записать настройки (скажем, строку «SWITCH: YES») в каталог «Документы», например

[string  writeToFile:<#(NSString *)#> atomically:<#(BOOL)#> encoding:<#(NSStringEncoding)#> error:<#(NSError **)#>];

см. Этот пост Сохранение данных после обновления приложения

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