2011-11-15 10 views
2

코어 데이터 애플리케이션을 iCloud와 동기화하고 있으며 어느 상황에서 하나의 NSMergePolicy를 다른 상황에서 선택하겠습니까? NSMergeByPropertyStoreTrumpMergePolicy를 사용하고 있지만 때때로 임의의 삭제가 발생합니다. 내가 사용해야 할 또 다른 것이 있습니까?어떤 NSMergePolicy를 사용합니까?

답변

2

ntesler,

각 병합 정책에는 서로 다른 목표가 있습니다. 나는 항상 NSMergeByPropertyStoreTrumpMergePolicy을 사용하는 백그라운드 스레드를 디폴트로하고 메인 스레드는 NSMergeByPropertyObjectTrumpMergePolicyType을 사용한다. 이 정책들이 중요한 주요 시간은 -refreshObject:mergeChanges:으로 전화 할 때입니다. mergeChanges을 YES로 설정하면 각각의 진실은 정책의 지시에 따라 선택됩니다.

저는 iCloud를 사용하지 않았기 때문에 위의 분석을 변경하면 조언을 드릴 수 없습니다. 내 경험에도 불구하고, 당신은 하나의 저장소를 "진실"이되도록 선택해야합니다. iCloud는 항상 진실입니까? 나는 그것이 있어야한다고 기대한다. 앤드류

+0

'ObjectTrumpMergePolicy'가 내가 필요로하는 것처럼 보입니다. – ntesler

+0

마지막 코멘트를 취소합니다. 나는 모든 NSMergePolicies를 광범위하게 테스트했으며, 모두 쉽게 피할 수있는 오류를 유발합니다. 내가 필요로하는 건 마지막으로 작가가이기는 것이지만 재산별로. 내가 할 수있는 어떤 아이디어? NSMergePolicy를 하위 클래스로 만들고 resolveConflicts를 재정의 할 수있는 방법이 있습니까? – ntesler

+0

님, 귀하의 iCloud 상점과 로컬 복사본간에 충돌 문제가 있습니까? 클라우드와 장치를 더 자주 동기화해야하는 것처럼 들립니다. 내 앱이 백그라운드로 들어가거나 활성 상태를 종료하면 항상 이러한 작업을 수행합니다. IOW, 데이터를 클라우드로 전달하는 방식에 적극적이어야합니다. 앤드류 – adonoho

0

NSMergeByPropertyObjectTrumpMergePolicy

은 나에게 가장 일한 병합 정책입니다. NSMergeByPropertyStoreTrumpMergePolicy 가끔 메모리간에 일관성없는 병합이 발생하는 경우가 있습니다.

관련 문제