0

performBlock 또는 performBlockAndWait 함수를 호출해야 multithreadingCore Data를 사용하는 Parent/Child 컨텍스트 모델을 사용하십니까?코어 데이터 : managedObjectContext 어디 performBlock 이상을 사용하는 performBlockAndWait

변경 사항을 Child context에서 Parent context으로 저장할 때만 호출해야합니까? 따라서 핵심 데이터 레코드 (하위 컨텍스트에서)를 이미 변경 한 후에는?

코어 데이터 레코드를 실제로 변경하는 동안 performBlock으로 전화 하시겠습니까? 자식에 대한 변경 사항을 저장할 때뿐만 아니라 부모 컨텍스트도 저장합니까?

답변

2

일반적으로 개체를 읽는 것만 포함하여 해당 컨텍스트와 관련된 작업을 수행 할 때는 항상 performBlock: 또는 performBlockAndWait:을 사용해야합니다. 유일한 예외는 주 대기열 컨텍스트 (원하는 경우 performBlock:을 사용할 수 있지만 주 스레드 인 경우 요구 사항은 없습니다)와 스레드 제한 컨텍스트 (더 이상 사용되지 않으며 사용하지 않을 가능성이 큽니다. 더 이상.)

+0

간결 답변 앤디. 보조 노트에서 부모/자식 컨텍스트 모델을 사용하는 자습서 나 예제를 알고 있습니까? (Swift에서 선호하는 Swift는 찾기가 어렵습니다!) –

+1

Swift 관련 예제는 알지 못하지만 실제로는 child에서'parentContext' 속성을 설정하고 두 변수 사이에서 변경 사항이 전달되는 방식을 실험하는 것만 큼 간단합니다. 일부 행동은 당신을 놀라게 할 수 있습니다. (나는 확실히 해냈다.) 임시 저장 카드 이외의 다른 것에는 하위 컨텍스트를 사용하지 않는 것이 좋습니다. 병합 정책을 저장하지 않으면 병합 정책을 고려하지 않고 부모에게 변경 사항을 적용합니다. 잠시 동안 (예 : 컨텍스트 동기화) 생존하는 모든 컨텍스트는 영구 저장소 코디네이터와 직접 연결됩니다. –