我有一个CKRecordID,需要保存到CloudKit作为参考。但是,当我尝试保存它时,出现以下错误:

无法转换“CKRecordID”类型的值?到预期的参数类型“CKRecordValue?”

当前选择的用户的声明:

var currentlySelectedUser: CKRecordID?

在另一个CKQuery中检索currentSelectedUser:
self.currentlySelectedUser = record.creatorUserRecordID

保存currentSelectedUser:
myRecord.setObject(currentlySelectedUser, forKey: "toUser")

错误发生在代码的第三行。

如何将此CKRecordID保存为另一个CloudKit记录中的引用?

最佳答案

您正在尝试添加CKRecordID,它不是CKRecord支持的数据类型。如错误所示,它不符合CKRecordValue协议。

创建一个CKReference并添加它,如下所示:

myRecord["toUser"] = CKReference(recordID: currentlySelectedUser!, action: .None)

关于ios - 将CKRecordID保存到CloudKit,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38463059/

10-09 09:12