【发布时间】:2010-09-06 13:25:39
【问题描述】:
我正在尝试从一个 .xcdatamodel 文件迁移到另一个。我有一个 NSEntityMigrationPolicy 子类,我在 xcode-> .xcmappingmodel 文件 -> 实体 -> “自定义策略”字段中输入了它的名称。
我运行我的应用程序,该应用程序成功打开并运行了我的数据的先前版本,因此我只能假设基本迁移已经成功。但是没有调用我的 NSEntityMigrationPolicy 子类方法,以便我可以运行进一步的迁移代码。
@implementation TestMigrationPolicy
- (BOOL)beginEntityMapping:(NSEntityMapping *)mapping manager:(NSMigrationManager *)manager error:(NSError * *)error
{
NSLog(@"this log is never shown!!!!");
return YES;
}
有没有人知道为什么我的它可能没有被调用?我是核心数据迁移的新手,我目前不知道为什么它的行为不像我认为的那样。
如果有帮助,我正在创建这样的持久存储..
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:YES],
NSMigratePersistentStoresAutomaticallyOption,
[NSNumber numberWithBool:YES],
NSInferMappingModelAutomaticallyOption,
nil];
NSError *error = nil;
persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
NSLog(@"storeUrl %@", storeUrl);
if (![persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeUrl options:options error:&error]) {
【问题讨论】:
标签: iphone objective-c cocoa core-data