我正在设置一个用户可以创建记录的应用。让我们说他/她是聊天室的所有者。因此,有一个名为" 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转换为String。
当我直接传递userRecordID时,出现错误: ' CKRecordID'与CKRecordValue'
不同我一直在寻找,但我找不到更多有关此事的信息。
非常感谢任何帮助。谢谢你们!
答案 0 :(得分:3)
如果您的用户字段设置为CKReference字段,则应将其设置为:
daMainUser.setObject(CKReference(recordID: userRecordID, action: CKReferenceAction.None), forKey: "user")
在您的情况下,您不必创建recordID,因为您已经拥有它。否则你必须用以下内容创建它:
var recordID = CKRecordID(recordName: userRecordID.recordName)