我如何通过其记录名称查询 CloudKit 以获取特定记录?
Posted
技术标签:
【中文标题】我如何通过其记录名称查询 CloudKit 以获取特定记录?【英文标题】:How would I query CloudKit for a specific record by its recordName? 【发布时间】: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 进行查询
【问题讨论】:
【参考方案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)
【讨论】:
以上是关于我如何通过其记录名称查询 CloudKit 以获取特定记录?的主要内容,如果未能解决你的问题,请参考以下文章