我正在制作一个应用程序来存储每个用户的评论,然后将它们显示在我的应用程序中。 (就像餐厅评级应用程序一样)但是,当用户输入评论并点击提交时,仪表板上似乎没有显示任何内容。
每个记录类型都设置为可查询,但是当我单击查询结果时,它会给出错误,我应该将索引设置为可查询。
这是我的代码。(Swift)
@IBAction func OnSubmitTouched(_ sender: UIButton) {
if (textField.text != ""){
let newComment = CKRecord(recordType: "Comment")
let publicDB = CKContainer.default().publicCloudDatabase
newComment.setValue(textField.text!, forKey: "comment")
CKContainer.default().fetchUserRecordID { recordID, error in
guard let recordID = recordID, error == nil else {
// error handling magic
return
}
//let userID = CKContainer fetchUserRecordIDWithCompletionHandler:
publicDB.save(newComment){
rec ,err in
if let error = err {
print(err.debugDescription)
return
}
publicDB.fetch(withRecordID: recordID) { record, error in
guard let record = record, error == nil else {
// show off your error handling skills
print(rec!["comment"]!)
return
}
print("The user record is: \(record)")
}
}
}
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)
最佳答案
嗯...CloudKit 非常擅长在保存失败时告诉您。您的任何错误是否返回任何内容?
此外,CKContainer.default()
返回的容器 ID 是否与您在仪表板中查看的容器 ID 相同?
我要检查的最后一件事是,您是否在 iOS 设备和 CloudKit 仪表板上使用相同的 Apple ID,以便查看同一用户的数据?
关于ios - CloudKit 仪表板未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51927441/