核心数据和多线程:
- 在一种情况下保存
- 等待完成
- 获取对象 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"); }); }];
据我了解,这应该可行,但断言失败。