我正在创建一个应用程序以在CloudKit上存储用户条目(评论)。该代码可以在XCode上正常运行,XCode可以毫无问题地打印用户输入的内容。但是,当我返回仪表盘时,选择“记录”并命中查询记录,我会收到此错误:查询“注释”类型时出现问题。 字段“ recordName”未标记为可查询。在索引部分的此字段上启用“可查询”索引。
我在仪表板上看不到任何用户条目。 但是,我已经在索引部分将所有记录类型列为可查询,可搜索和可排序。这是我的代码,如果有人可以帮助我,我会很高兴,因为这个问题我的头快要爆炸了。非常感谢!!!
@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)
}
}