如何解决如何使用 NSPersistentCloudKitContainer (CloudKit with Core Data) 读取数组?
我在 CloudKit 上的 Core Data/type 实体中有 [String] 和 [Int] 属性,它们分别是 String 列表和 Int64 列表。我正在尝试通过 NSPersistentCloudKitContainer(公共服务器)同步它们。所有其他属性都正确同步,但这两个属性根本不同步。其他的很简单——字符串、日期、Int64/Int。我也想让它们同步。
它们都是可转换的,它们各自的自定义类设置为 [String] 和 [Int]。代码生成是手动/无,所以我可以创建解包的属性供以后使用。
当我在第一次启动时运行应用程序时,我也得到了带有他们数据的 CKRecord - 我的意思是我在调试中看到他们在下载的记录信息中的值。但是,当我检查 Core Data 时,它告诉我 nil。
我尝试设置 NSSecureUnarchiveFromData 和 NSSecureUnarchiveFromDataTransformerName,但没有成功。
我很清楚数组的数据被下载了,我不明白为什么 Core Data 不喜欢数组。
解决方法
好的,设法解决了:
-
它不能是 CloudKit 上的任何类型的列表,而是字节。
-
剩下的只是在上传时将数组转换为 NSData。我用数据做的
让 archivedString = 试试? NSKeyedArchiver.archivedData(withRootObject: [String],requiresSecureCoding: true)
[Int] 也是如此。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。