Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
if ([[NSUserDefaults standardUserDefaults] valueForKey:@"appVersion"]==nil)
{
[[NSUserDefaults standardUserDefaults] setValue:[NSNumber numberWithInt:1] forKey:@"appVersion"];
// ...
// устанавливаем остальные параметры
// ...
[[NSUserDefaults standardUserDefaults] synchronize];
}
else
{
int app_version = [[NSUserDefaults standardUserDefaults] valueForKey:@"appVersion"];
// далее можно проверить, отличается ли текущая версия от пользовательской app_version и, например, добавить в настройки новые поля
}
Во время обновления на устройствах новая база затирает старую и все довольны— я правильно понимаю, что речь идет просто о файле в bundle вашего приложения? Если так, и если он обновляется только при обновлении приложения целиком (версии 1.0 => 1.1, например), то в NSUserDefaults вообще нет нужды. Другой разговор если у вас данные можно обновить через интернет — тогда есть смысл держать актуальную версию, и выбор между NSUserDefaults и SQLite зависит от структуры самих данных.
int app_version = [[[NSUserDefaults standardUserDefaults] valueForKey:@"appVersion"] intValue];
Пример: различные NSArray и NSDictionary отлично пишутся в NSUserDefaults
Первый опыт разработки iOS-приложения и размышления о маркетинге и рекламе