核心数据和多线程:
我收到错误133000,后台线程上的对象为NIL。好像保存没有完成。为什么呢?
__block ChapterData *ch1; [MagicalRecord saveInBackgroundWithBlock:^(NSManagedObjectContext *localContext) { ch1 = [ChapterData MR_createInContext:localContext]; ch1.name = @"My Chapter"; } completion:^{ dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ NSError *error; NSManagedObject *ch2ByObjectId = [[NSManagedObjectContext MR_contextForCurrentThread] existingObjectWithID:ch1.objectID error:&error]; GHAssertNotNil(ch2ByObjectId, @"Ch2 by Ch1 object id is NIL"); }); }];
根据我的理解,这应该有效,但它没有通过断言。
答案 0 :(得分:0)
我不确定你是否还有这个问题,但是我的回复是:你实际上并没有在ManagedObjectContext上调用save方法。您只是要求在“localContext”中创建对象,但不执行保存。