【发布时间】:2011-01-19 14:15:09
【问题描述】:
我想让我的应用在添加时能够进行自动轻量级迁移 我的核心数据模型的新属性。
在 Apple 的指南中,这是我能找到的关于该主题的唯一信息:
自动轻量级迁移
请求自动轻量化 迁移,您设置适当的标志 在您传入的选项字典中 addPersistentStoreWithType:configuration:URL:options:error:。 您需要设置相应的值 对双方 NSMigratePersistentStoresAutomatically 选项 和 NSInferMappingModelAutomaticallyOption 是的关键:
NSError *error;
NSURL *storeURL = <#The URL of a persistent store#>;
NSPersistentStoreCoordinator *psc = <#The coordinator#>;
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption,
[NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, nil];
if (![psc addPersistentStoreWithType:<#Store type#>
configuration:<#Configuration or nil#> URL:storeURL
options:options error:&error]) {
// Handle the error.
}
我的NSPersistentStoreCoordinator是这样初始化的:
- (NSPersistentStoreCoordinator *)persistentStoreCoordinator {
if (persistentStoreCoordinator != nil) {
return persistentStoreCoordinator;
}
NSURL *storeUrl = [NSURL fileURLWithPath: [[self applicationDocumentsDirectory] stringByAppendingPathComponent: @"FC.sqlite"]];
NSError *error = nil;
persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
if (![persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeUrl options:nil error:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
return persistentStoreCoordinator;
}
我不知道应该在何处以及如何添加 Apple 代码以使自动轻量级迁移正常工作?
【问题讨论】:
-
Swift 4 版本点击此链接 - stackoverflow.com/questions/51519516/…
标签: iphone core-data data-migration