ios - CloudKit 仪表板未更新
问题描述
我正在制作一个应用程序来存储每个用户的评论,然后将它们显示在我的应用程序中。(就像餐厅评级应用程序一样)但是,当用户输入评论并点击提交时,仪表板上似乎没有出现任何内容。
每个记录类型都设置为可查询,但是当我单击查询结果时,它会给我一个错误,我应该将索引设置为可查询。
这是我的代码。(斯威夫特)
@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,以便查看相同用户的数据?
推荐阅读
- html - 如何更改 Laravel 中的图标?
- security - 微服务架构中具有 userId 字段的数据库组织
- flutter - WidgetsBindingObserver 是否适用于无状态小部件?
- c++ - 如何在 C++ 中将数字拆分为数字
- javascript - 如何欺骗反应路由器认为`/`是挂载目录?
- python - 如何在 Ray 中使用全局变量
- java - 数据未更改时如何从 Firebase 检索数据
- azure - 通过 Azure DevOps API 更新构建定义的 defaultBranch
- azure - 通过 REST API 获取 iothub 注册设备
- google-cloud-dataflow - 在数据流python中在运行时向“beam.io.BigQuerySource”提供“查询”参数