2016-11-10 44 views
1

我有一個自定義類,我做了(swift-y)結構NSCodable。現在我想將其轉換爲CKRecord以使用CloudKit。儘管我在編碼結構時設置了「鍵值」對,但我瞭解該結構已轉換爲NSData,並且不能將其轉換爲字典(或其他鍵值對象)。所以我覺得這不是要走的路。NSCoding CKRecord

有沒有辦法直接進行此轉換?或者在兩者之間(例如將數據轉換爲[String:String] - 字典)?

+0

您可以將'NSData'存儲在CKRecord中。 – rmaddy

+0

但是這會導致CKRecord中的數據blob。我想有一個方便的方式來轉換它。 –

回答

0

NSCoding僅適用於同一班級。相反,在您的自定義類上編寫toServerDictionary方法(僅包括要發送到CloudKit的屬性),然後使用結果在CKRecord上調用setValuesForKeys

您可能會發現有些屬性需要是特定類型,在這種情況下,最好將您的方法創建爲ServerRecord並創建CKRecord並將其返回。你也可以有一個updateWithServerRecord來設置你收到的任何東西。