ang*_*okh 3 core-data objective-c ios magicalrecord
我想继续使用我当前的RestKit,同时使用MagicRecord进行其余的提取和更新.我希望Restkit的MOC发送更新到MagicRecord的默认上下文.如果我理解正确,这就是我在做的事情.这个可以吗?
NSManagedObjectContext* context = [[RKObjectManager sharedManager].objectStore managedObjectContextForCurrentThread];
[MagicalRecord setupCoreDataStackWithAutoMigratingSqliteStoreNamed:[XDBStore storeName]];
[context setParentContext:[NSManagedObjectContext MR_defaultContext]];
Run Code Online (Sandbox Code Playgroud)
也许是另一种方式,但仍然不确定.
NSPersistentStoreCoordinator *coordinator = [[[RKObjectManager sharedManager] objectStore] persistentStoreCoordinator];
[NSPersistentStoreCoordinator MR_setDefaultStoreCoordinator:coordinator];
[NSManagedObjectContext MR_initializeDefaultContextWithCoordinator:coordinator];
Run Code Online (Sandbox Code Playgroud)
以前有人有同样的问题吗?
编辑1
我尝试了@ casademora的建议#1来设置默认上下文,但是出现了这个错误.
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Can only use -performBlockAndWait: on an NSManagedObjectContext that was created with a queue.'
Run Code Online (Sandbox Code Playgroud)
编辑2
我找到了一个黑客.首先,在magicalrecord中打开默认上下文的setter.接下来,更改RestKit存储的并发类型,以便可以在magicalrecord中使用其上下文.
的NSManagedObjectContext + MagicalRecord.h
+ (void) MR_setDefaultContext:(NSManagedObjectContext *)moc;
+ (void) MR_setRootSavingContext:(NSManagedObjectContext *)context;
Run Code Online (Sandbox Code Playgroud)
RKManagedObjectStore.m
NSManagedObjectContext *managedObjectContext = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSMainQueueConcurrencyType];
Run Code Online (Sandbox Code Playgroud)
然后像这样设置MagicalRecord:
NSManagedObjectContext* context = [[RKObjectManager sharedManager].objectStore managedObjectContextForCurrentThread];
[NSManagedObjectContext MR_setRootSavingContext:context];
NSManagedObjectContext *defaultContext = [NSManagedObjectContext MR_newMainQueueContext];
[defaultContext setParentContext:context];
[NSManagedObjectContext MR_setDefaultContext:defaultContext];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2696 次 |
| 最近记录: |