Swift用户条目未出现在CK仪表板上

时间:2018-08-19 13:10:14

标签: swift containers cloudkit dashboard userid

我正在创建一个应用程序以在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)


 }
}

0 个答案:

没有答案