【发布时间】:2010-11-03 17:46:24
【问题描述】:
我有一个引入 2 种新实体类型的核心数据迁移。迁移没有问题,但我想在迁移后用默认数据填充数据库。
目前,我的方法是定义一个自定义的 NSEntityMigrationPolicy 并覆盖 endEntityMapping:manager:error:
- (BOOL)endEntityMapping:(NSEntityMapping *)mapping manager:(NSMigrationManager *)manager error:(NSError **)error {
if (![super endEntityMapping:mapping manager:manager error:error]) return NO;
Theme *defaultTheme = [NSEntityDescription insertNewObjectForEntityForName:@"Theme" inManagedObjectContext:[manager destinationContext]];
[defaultTheme setName:NSLocalizedString(@"Default", @"Default theme name")];
return YES;
}
- 这是个好方法吗?
- 为什么不调用 Theme 的 -awakeFromInsert?
【问题讨论】:
-
插入是否有效?您是否明确调用 save ?还是依赖迁移管理器这样做?
-
插入有效。我没有打电话保存。退出后可以看到数据库中的行。
标签: objective-c cocoa macos core-data