gpt4 book ai didi

Swift 使用 CloudKit 保存新评论

转载 作者:行者123 更新时间:2023-11-28 14:21:18 35 4
gpt4 key购买 nike

我正在尝试制作一个应用程序,用于存储用户对 CloudKit 的评论,然后将其显示给其他用户。用户只需在文本字段中输入他/她的评论,然后单击提交按钮即可提交他/她的评论(就像餐厅应用程序一样)。但是,无论我尝试什么,我似乎都找不到正确的方法。这是我的代码,我很高兴能得到任何帮助,因为我已经在这个问题上停留了一段时间了。非常感谢您!

@IBAction func OnSubmitTouched(_ sender: UIButton) {
if (textField.text != ""){

let newComment = CKRecord(recordType: "Users")
let publicDB = CKContainer.default().publicCloudDatabase
newComment.setValue(textField.text!, forKey: "comment")
publicDB.save(newComment){
rec ,err in
if let error = err {

print(err.debugDescription)
return
}

publicDB.fetch(withRecordID: newComment.recordID){
rec, err in

print(rec!["comment"]!)
return
}
}
let predicate = NSPredicate(value: true)
let query = CKQuery(recordType: "comment", predicate: predicate)
let operation = CKQueryOperation(query: query)

var commentRecords: [CKRecord] = []

operation.recordFetchedBlock = { record in
commentRecords.append(record)
}

operation.queryCompletionBlock = { cursor, error in
print(commentRecords)
}

CKContainer.default().publicCloudDatabase.add(operation)
}
}

最佳答案

您收到权限错误,因为 Users 是 CloudKit 自动为您的应用程序用户创建的 protected 记录类型。您应该将其命名为其他名称,然后它应该可以工作。

例如,您可以创建一个Comment 记录类型。这可能需要一个引用当前用户的字段。您可以通过以下方式获取当前用户 ID:

CKContainer fetchUserRecordIDWithCompletionHandler:

这是 Apple documentation对于这种方法。

也可以使用 Users 记录类型,但您必须像上面那样从 CloudKit 中找到现有的用户 ID,然后围绕它构建记录。

另见 this answer .

关于Swift 使用 CloudKit 保存新评论,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51916683/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com