내 데이터 모델은 다음과 같습니다CoreData - 문제에 접근 관계
이가 < ----- >> 개체 B < -----> 개체 C가
내가 객체의 그룹을 가져 객체 A는 NSFetchedResultsController를 통해 Core Data에서 가져온 것입니다. 이 그룹에서 하나 개의 특정 목적을 위해, 나는 그것과 관련된 하나의 개체 B를 가지고 있음을 알고 나는 개체 C.에게이 같은 것을 할 노력하고있어
검색 할 :
NSArray *bArray = [objectA.relationA allObjects];
ObjectB *myB = bArray[0];
ObjectC *myC = myB.relationB;
(I've also tried [myB valueForKey:@"relationB"] with the same result)
을 문제는 내가 고장이 오브젝트 C에 대한 화재 얻을 수 있다는 것입니다 - 나는 MYC이가 계속 :
$ 6 = 0x0a947c00 (법인 : ObjectC; ID : 0xa9680b0, 데이터 :) 난
이 값을 다른 뷰 컨트롤러에 전달하면 거기에 액세스 할 때 여전히 오류가 발생합니다. 끔찍하게 유용하지 않습니다.
개체를 가지고있을 때 다시 가져와야하는 것은 어리석은 것처럼 보이지만 그 밖의 다른 작업은 모른다. 이 스레드에서 찾을 수있는 모든 스레드는 오류가 정상이며 오류가 발생한 개체에 액세스 할 때 해고 될 것이라고 말합니다. 그러나 여기서는 발생하지 않는 것 같습니다.
제안 사항?
업데이트 :이 추가 시도가 :
[fetchRequest setRelationshipKeyPathsForPrefetching:@[@"relationA.relationB"]];
그러나 그것은 어떤 차이를하지 않았다.
나는 그것을 시도하고는 대부분의 시간을 작동하는 것 같다,하지만 MYC에 액세스 할 때 나는 아직도 한 번이 오류가 발생했습니다 : "CoreData : 오류 : NULL _cd_rawData하지만 객체가 고장으로 전환되지 않는" 항상 새로운 것을 배울 무언가 ... – janineanne
그 오류에 대한 정보가 있습니다. (같은 이름의 질문에) http://stackoverflow.com/q/9225046/643383. 폴트를 소유 한 컨텍스트와 관련되지 않은 스레드에서 폴트를 시도하는 것처럼 들립니다. 다른 thread로 fault를 사용해야하는 경우는,'objectID'를 건네 주어, 문맥의'-objectWithID :'메소드를 사용해 목적지 thread의 문맥으로 객체를 취득하는 것을 고려해주세요.아니면 내가 이걸 너무 많이 읽고있어. – Caleb