核心数据和多线程:
- 在一种情况下保存
- 等待完成
- 获取对象 ID 并从其他上下文中请求它。
我收到错误 133000,后台线程上的对象为 NIL。好像保存没有完成。为什么?
__block 章节数据 *ch1;
[MagicalRecord saveInBackgroundWithBlock:^(NSManagedObjectContext *localContext) {
ch1 = [ChapterData MR_createInContext:localContext];
ch1.name = @"我的章节";
} 完成:^{
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
NSError *错误;
NSManagedObject *ch2ByObjectId = [[NSManagedObjectContext MR_contextForCurrentThread] existingObjectWithID:ch1.objectID error:&error];
GHAssertNotNil(ch2ByObjectId, @"Ch2 by Ch1 对象 id 为 NIL");
});
}];
据我了解,这应该可行,但断言失败。