은 내가 자식 컨텍스트를 사용하는 방법을 학습 때 :왜 관리 대상과 컨텍스트간에 약한 참조가 있습니까?
let childContext =
NSManagedObjectContext(
concurrencyType: .mainQueueConcurrencyType)
childContext.parent = coreDataStack.mainContext
let childEntry =
childContext.object(with: surfJournalEntry.objectID)
as? JournalEntry
// 3
detailViewController.journalEntry = childEntry
detailViewController.context = childContext
detailViewController.delegate = self
저자는 관리 객체와 detailViewController에 관리되는 개체 컨텍스트를 모두 통과에 대한 몇 가지 발언을했다 :
참고 : 당신은 왜 궁금 할 것이다 관리 대상 객체에 컨텍스트 변수가 이미 있으므로 관리 된 객체와 관리 객체 컨텍스트를 모두 detailViewController 인 에 전달해야합니다. 이는 관리 대상의 컨텍스트에 대한 약한 참조 만 있기 때문입니다. 컨텍스트를 전달하지 않으면 ARC가 메모리에서 컨텍스트를 제거합니다 ( 이후로 다른 컨텍스트가 유지되지 않으므로). 이 예상대로 동작하지 않습니다.
음, 좋아, 그래서 다음 몇 가지 공식 문서 읽기 :
이 일반적으로 관리되는 객체 인스턴스의 수명을 보장하기 위해 문맥에 의존 할 수 없다, 당신이 의지 할 수 없음을 의미를 컨텍스트의 수명을 보장하기 위해 관리되는 객체가 존재 함을 나타냅니다. 다른 방법으로 말하자면, 객체를 가져 왔다고해서 그것이 이라는 것을 의미하지는 않습니다.
그러나 아직 관리 대상과 컨텍스트 사이의 약한 참조를 만드는 것이 진정한 의도인지 알 수 없습니까? 그들이 추구하는 목표는 무엇입니까?
"공식 문서"란 무엇입니까? 이 견적을 문맥에서 읽을 수 있다면 도움이 될 것입니다. –