1
핵심 데이터 및 멀티 스레딩 사용 : 완료 악명 높은 오류 133000 GCD와 MagicalRecord
- 저장하고 다른 컨텍스트에서를 요청합니다.
오류 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"); }); }];
내 이해하려면이게 작동해야하지만 아직 주장에 어긋납니다.
창조가 MagicalRecord.saveInBackgroundWithBlock 래핑된다. – Aviel
컨텍스트의 기본 병합 정책 만 사용하고 있습니까? 로컬 컨텍스트가 주 스레드 상위 컨텍스트의 하위 요소입니까? –