我是 CloudKit 和 iOS 开发的新手。我已经手动向 CloudKit 仪表板添加了一些记录,现在我想通过它们的 ID 来检索它们,这些 ID 是自动创建的。然后我想在静态 tableview 单元格的 UILabel 中显示记录的值。有两个问题:1)。使用仪表板中的 ID 时,我在 xCode 中遇到错误(错误显示“预期”、“分隔符”);和 2)。我找不到任何将记录值放入静态 tableview 单元格中的 UILabel 的示例。 (特别是对于快速)。任何帮助是极大的赞赏!

这是我的代码:

override func viewDidLoad() {
    super.viewDidLoad()

    publicDB.fetchRecordWithID (f7080e7a-f8c3-4db6-b8ee-642a011a6762) { record, error in


        if error != nil {

            println("there was an error \(error)")

        } else {

            // this is my UILabel in a static tableview. The record's only attribute is //called "subCategory"

            plasticOneValue.text = record["subCategory"]
        }
    }
}

更新: 或者 - 我尝试了这段代码并且构建成功了,但是控制台说它有一个内部错误并且 UILabel 仍然是空白的......关于我在上面的代码或这段代码中做错了什么的任何建议?
override func viewDidLoad() {
    super.viewDidLoad()

    // I created a new CKRecord ID Object and provided the existing ID in dashboard and //it fixed the error about requiring a "," separator

   var plasticOneID = CKRecordID(recordName: "f7080e7a-f8c3-4db6-b8ee-642a011a6762")

    publicDB.fetchRecordWithID (plasticOneID) { record, error in

        if error != nil {

            println("there was an error \(error)")

        } else {

            self.plasticOne.text = (record.objectForKey("subCategory") as String)

        }
    }
}

最佳答案

这是两个不同的问题

  • 查询 ID 时,您必须像在第二个示例
  • 中一样查询 CKRecordID
  • 访问 UI 时,您必须在主队列上执行此操作。

  • 那么代码将类似于:
    publicDB.fetchRecordWithID(CKRecordID(recordName: "f7080e7a-f8c3-4db6-b8ee-642a011a6762"), completionHandler: {record, error in
        if error != nil {
            println("there was an error \(error)")
        } else {
            NSOperationQueue.mainQueue().addOperationWithBlock {
                self.plasticOne.text = (record.objectForKey("subCategory") as String)
            }
       }
    })
    

    关于ios - 如何在 CloudKit Dashboard 中使用 "fetchWithRecordID"自动生成 ID?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27261948/

    10-13 05:06