2017-08-01 42 views
2

我目前正在構建一個同步Core Data記錄到CloudKit的解決方案。如何用zoneID和recordID初始化CKRecord?

我需要幫助來找出它我想用CKRecord做什麼是可行的。

我檢查了Apple CloudKit文檔,試驗並搜索了網頁,但是我沒有找到我想要的答案。

我想初始化CKRecord有zoneIDrecordID,我會在init方法中提供。
初始化器似乎迫使我在兩者之間進行選擇。 I 想要創建我自己的ZoneID(不使用默認值),並且設置recordID而不是自動生成。

會這樣嗎?

回答

3

您可以指定一個區域ID和記錄ID,但你需要做的是在三個步驟:

首先,創建您的區域ID和用戶CKRecordZoneID

let ckRecordZoneID = CKRecordZoneID(zoneName: "myZone", ownerName: CKOwnerDefaultName) 

然後你可以用你需要的記錄ID創建一個CKRecordID並指定你的CKRecordZoneID

let ckRecordID = CKRecordID(recordName: recordIDString, zoneID: ckRecordZoneID) 

最後,你可以創建CKRecord使用記錄ID:

let ckRecord = CKRecord(recordType: myRecordType, recordID: ckRecordID) 
+0

你可以看到我是如何做到這一點的位置:https://github.com/paulw11/Seam3/blob/master/Sources/Classes/NSManagedObject%2BCKRecord.swift – Paulw11