我碰到一堵砖墙,试图使用MagicalRecord设置Core Data的轻量级迁移。我已经使用Google和SO查看了关于此主题的所有帖子。我了解persistentStoreCoordinator是如何工作的以及我想要做的设置。如何使用MagicalRecord设置Core Data轻量级迁移?
这里是我的代码:
AppDeligate.h
NSPersistentStoreCoordinator *persistentStoreCoordinator;
AppDelegate.m
- (NSPersistentStoreCoordinator *)persistentStoreCoordinator {
if (persistentStoreCoordinator != nil) {
return persistentStoreCoordinator;
}
NSURL *storeUrl = [NSURL fileURLWithPath: [[self applicationDocumentsDirectory] stringByAppendingPathComponent: @"saori.sqlite"]];
// handle db upgrade
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption,
[NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, nil];
NSError *error = nil;
persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel: [self managedObjectModel]];
if (![persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeUrl options:options error:&error]) {
// Handle error
}
return persistentStoreCoordinator;
}
我收到以下错误,WHI我明白了;我不知道是在哪里这些对象(我已经看过我的应用程序,并没有发现什么):
为“AppDelegate的”不可见@interface声明选择“applicationDocumentsDirectory”和
无为 'AppDelegate的' 可见@interface声明选择 'managedObjectModel'
我已经创建了专卖店:
大部分(如果不是全部)我看过的代码都是相似的;我不知道MagicalRecord是否为我处理这个问题,因为我找不到任何可以指示如何使用MR的文档。我的问题是:我需要做些什么来完成这项工作?
在上一张截图中,新模型尚未成为活动模型,因此仍会使用旧模型。 –