0

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

它们都是可变形的,它们各自的自定义类设置为 [String] 和 [Int]。codegen 是 Manual/None,所以我可以创建展开的属性以供以后使用。

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

我尝试设置 NSSecureUnarchiveFromData 和 NSSecureUnarchiveFromDataTransformerName,但没有成功。

我很清楚数组的数据是下载的,我不明白为什么 Core Data 不喜欢这些数组。

4

1 回答 1

0

好的,设法解决它:

  1. 它不能是 CloudKit 上的任何类型的列表,而是字节。

  2. 其余的只是在上传时将数组转换为 NSData。我用数据做到了

    让 archivedString = 试试?NSKeyedArchiver.archivedData(withRootObject: [String], requiresSecureCoding: true)

[Int] 也是如此。

于 2021-02-08T20:12:54.927 回答