2017-08-01 6 views
2

私は現在、にCore Dataレコードを同期させるソリューションを構築しています。zoneIDとrecordIDの両方でCKRecordを初期化する方法は?

私はCKRecordで実行したいことを見つけるために助けが必要です。

私はApple CloudKitのドキュメントをチェックして実験し、ウェブを検索しましたが、私が望む答えが見つからなかった。

CKRecordをzoneIDで初期化したいと思います。また、initメソッドで提供するrecordIDを初期化したいと思います。
イニシャライザは、2つのうちのどちらかを選択するように強制しているようです。私は 自分自身のゾーンIDを作成したい(デフォルトでは使用しない)。また、自動生成される代わりにrecordIDを設定する。

これは可能でしょうか?

答えて

3

あなたは、ゾーンIDとレコードIDの両方を指定することができますが、三つのステップでそれを実行する必要があります。

まず、あなたのゾーンのIDとユーザーとのCKRecordZoneIDを作成:

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

を次にあなたは必要なレコードのIDでCKRecordIDを作成し、あなたのCKRecordZoneIDを指定することができます。

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

最後に、あなたがを作成することができます3210そのレコードのIDを使用して:

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

あなたが、私はここにこれを行う方法を見ることができます。https://github.com/paulw11/Seam3/blob/master/Sources/Classes/NSManagedObject%2BCKRecord.swift – Paulw11