Мне было интересно, что люди делают, когда дело доходит до обновления приложения из предыдущих версий. Это может включать, помимо обновления модели Core Data, добавление нового объекта, удаление старых объектов и т. Д. Для поддержки новых функций и т. Д.
В настоящее время я ставлю код обновления в методе
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions;
Это более или менее то, что я делаю:
NSString *version = [userDefaults stringForKey:@"myAppVersion"];
if(!version){
// first time installation
NSString *bundleVersion = [[NSBundle mainBundle] objectForInfoDictionaryKey:(NSString *)kCFBundleVersionKey];
[userDefaults setValue:bundleVersion forKey:@"myAppVersion"];
[userDefaults synchronize];
// other code here to handle initial installation
}
else{
NSString *updatedTov1.1 = [defaults objectForKey:@"updatedTov1.1"];
if(!updatedTov1.1){
// updating from a previous version to version v1.1
// set current version
NSString *bundleVersion = [[NSBundle mainBundle] objectForInfoDictionaryKey:(NSString *)kCFBundleVersionKey];
[userDefaults setValue:bundleVersion forKey:@"myAppVersion"];
// other code to handle update
defaults setObject:@"updatedTov1.1" forKey:@"updatedTov1.1"];
[userDefaults synchronize];
}
}