如何读取数组与NSPersistentCloudKitContainer (CloudKit与核心数据)?



我在CloudKit上的核心数据/类型上的实体中有[String]和[Int]属性,它们分别是字符串列表和Int64列表。我试图通过NSPersistentCloudKitContainer(公共服务器)同步它们。所有其他属性都可以正确同步,但这两个属性根本不能同步。其他的是简单的-字符串,日期,Int64/Int。我也想让它们同步。

它们都是可转换的,它们各自的自定义类设置为[String]和[Int]。代码根是Manual/None,所以我可以创建未包装属性以供以后使用。

当我在第一次启动时运行应用程序,我得到CKRecord与他们的数据,太-我的意思是我在调试中看到他们的值在下载的记录信息。然而,当我检查Core Data时,它告诉我nil。

我已经尝试设置NSSecureUnarchiveFromData和NSSecureUnarchiveFromDataTransformerName,它没有工作。

我很清楚数组的数据是下载的,我不明白为什么Core data不像数组。

好的,成功解决了:

  1. 它不能是CloudKit上的任何类型的List,而是Bytes。

  2. 剩下的只是在上传时将数组转换为NSData。我用Data

    let archivedString = try?NSKeyedArchiver。archivedData(withRootObject: [String], requireingsecurecoding: true)

[Int]也是如此。

最新更新