2014-12-20 2 views
2

CloudKit을 사용하는 앱과 CloudKit을 사용하여 iCloud와 동기화되는 로컬 CoreData 캐시로 작업하고 있습니다. CKFetchRecordChangesOperation 클래스를 사용하여 새 레코드, 변경된 레코드 및 삭제 된 레코드를 가져옵니다. 반환 된 CKServerChangeToken은 모든 연속 인출에 사용됩니다. CKModifyRecordsOperation은 레코드를 추가하고 삭제하는 데 사용됩니다.CKFetchRecordChangesOperation 반환 된 clientChangeToken은 무엇입니까?

CKModifyRecordsOperation을 사용하여 레코드를 추가하면 조작은 새로운 CKRecord을 반환합니다. 그런 다음 CKFetchRecordChangesOperation을 사용하여 새 가져 오기를 수행하면 새로 추가 된 레코드가 다시 가져 오므로 불필요합니다. 누구든지이 동작을 방지하는 방법을 알고 있습니까?

나는 거기 clientChangeTokenCKFetchRecordChangesOperation에서 반환 그러나 CKModifyRecordsOperation에 유형 NSDataclientChangeTokenData라는 속성은 어떤 이유로 항상 nil 알고있다.

답변

1

이전의 서버 변경 토큰 외에도 CKFetchRecordChangesOperation에 의해 리턴되어야하는 것을 제어하기위한 다른 메커니즘이 없습니다. 변경 사항을 반환합니다. 여기에는 변경 사항이 포함됩니다.

문제가 발생하면 대신 구독을 사용해보세요. 이것들은 기본적으로 자신이 변경 한 내용을 제외시킵니다.