【问题标题】:How would I query CloudKit for a specific record by its recordName?我如何通过其记录名称查询 CloudKit 以获取特定记录?
【发布时间】:2020-05-26 18:18:34
【问题描述】:

如何通过记录名称查询 CloudKit 以获取特定记录?

下面的代码给了我一个错误。

let recordName = "BBBA9068-D01A-9D55-3D6B-4460A7B36D57"
let predicate = NSPredicate(format: "recordID=%@", recordName)
let query = CKQuery(recordType: "Route", predicate: predicate)

privateDatabase.perform(query, inZoneWith: nil) {

    (records: [CKRecord]?, error: Error?) in

    if error != nil {

        print(error!.localizedDescription)

    } else {

        if let records = records {

            print(records.first as Any)

        }

    }

}

调试窗口显示:

字段“___recordID”的值类型为 REFERENCE,无法使用筛选值类型 STRING 进行查询

【问题讨论】:

    标签: ios swift cloudkit ckquery


    【解决方案1】:

    我更改了代码的前两行并让它工作。

    let recordID: CKRecord.ID = CKRecord.ID(recordName: "BBBA9068-D01A-9D55-3D6B-4460A7B36D57")
    let predicate = NSPredicate(format: "recordID=%@", recordID)
    let query = CKQuery(recordType: "Route", predicate: predicate)
    
    privateDatabase.perform(query, inZoneWith: nil) {
    
        (records: [CKRecord]?, error: Error?) in
    
        if error != nil {
    
            print(error!.localizedDescription)
    
        } else {
    
            if let records = records {
    
                print(records.first as Any)
    
            }
    
        }
    
    }
    

    【讨论】:

      猜你喜欢
      • 2015-11-24
      • 1970-01-01
      • 2016-03-13
      • 2021-04-07
      • 1970-01-01
      • 2016-06-13
      • 1970-01-01
      • 2015-04-19
      • 1970-01-01
      相关资源
      最近更新 更多