cloudkit 输入用户 ID 作为新记录的参考(在代码中)

cloudkit enter userID as reference of a new record (in code)

我正在设置一个用户可以在其中创建记录的应用程序。假设 he/she 是聊天室的所有者。因此聊天室记录中有一个名为 "admin" 的属性。此属性采用所有者 ID 的引用。

这是我尝试过的:

CKContainer.defaultContainer().fetchUserRecordIDWithCompletionHandler({
            userRecordID, error in
            if error != nil {
                println("caca")
            } else {
                println("gettin close")
                let UserRecordIDToStore = NSKeyedArchiver.archivedDataWithRootObject(userRecordID)
                let iDString = userRecordID.recordName as String
                daMainUser.setObject(iDString, forKey: "user")
            }
            })

当我如上所述传递 iDString 并创建记录(房间)时,其管理参考为空。我是否将 iDString 转换为字符串。

当我直接传递 userRecordID 时,出现错误: 'CKRecordID' 与 'CKRecordValue'

不同

我到处都在找,但我找不到关于这个的更多信息。

如有任何帮助,我们将不胜感激。谢谢大家!

如果您的用户字段设置为 CKReference 字段,那么您应该这样设置:

daMainUser.setObject(CKReference(recordID: userRecordID, action: CKReferenceAction.None), forKey: "user")

在您的情况下,您不必创建 recordID,因为您已经有了它。否则你必须用类似的东西来创建它:

var recordID = CKRecordID(recordName: userRecordID.recordName)