2017-05-02 9 views
2

CloudKit 앱에서 모든 CKR 코드가 저장된 개인 데이터베이스에서 하나의 영역을 만듭니다. CKR 코드는 10 가지 레코드 유형이 될 수 있으며 그 중 일부는 CKAssets을 첨부 할 수 있습니다. CKFetchRecordZoneChangesOperation을 사용하여이 영역의 레코드 변경 사항을 찾아 다운로드하십시오. CKFetchRecordZoneChangesOperation을 최적화하여 다운로드시에만 desiredKeys을 포함 시키므로 해당 시간에 CKAsset을 다운로드하지는 않지만 레코드 유형마다이를 지정하는 방법이없는 것 같습니다. 대신 CKFetchRecordZoneChangesOptions에만 desiredKeys을 지정할 수 있으며 zoneID에 설정되어있는 것처럼 보입니다.CKFetchRecordZoneChangesOperation을 최적화하여 원하는 키 가져 오기

그럼 내 구역에 다른 유형의 레코드 유형이 있다고 생각하면 CKFetchRecordZoneChangesOperation 가져 오기에 'desiredKeys'를 어떻게 지정할 수 있습니까? 나는 여기서 간단한 것을 놓치고 있습니까? 내가 생각하는 다른 (과감한) 옵션은 각 레코드 유형에 레코드 영역을 만드는 것이지만 대안이 가능할 경우 해당 경로로 이동하지 않을 것입니다.

감사합니다.

+0

다른 레코드 유형을 가져 오기 위해 CKQueryOperation을 사용 했으므로'desiredKeys' 속성을 사용하여 적절하게 CKAssets를 제외 할 수있었습니다. –

답변

0

유일한 옵션은 각 레코드 유형의 필드 이름에 접두사를 붙이는 것입니다. 이를 통해 레코드 유형별로 원하는 키를 지정할 수 있습니다.

https://developer.apple.com/reference/cloudkit/ckfetchrecordzonechangesoptions/1640472-desiredkeys 상태 :

var에 desiredKeys : [문자열]?

...

서로 다른 유형이 될 수 인출 기록, 배열 는 요청 된 레코드의 모든 필드 이름의 병합 된 집합을 포함하고 각 레코드 유형에서 적어도 하나의 필드 이름을 포함해야하기 때문에 .

...

귀하의 관찰은 사실이다. 레코드 유형에 특정한 영역 변경 사항을 가져올 수도 없습니다.