【问题标题】:Field '___recordID' is not marked queryable字段“___recordID”未标记为可查询
【发布时间】:2015-05-22 10:57:45
【问题描述】:

我尝试下载具有特定记录类型且记录 ID 与某个记录不匹配的所有记录。

但是我得到一个错误。任何想法?我以为我只能将手动添加的字段标记为可查询。

<CKError 0x15df2a10: "Invalid Arguments" (12/2015); server message = "Field '___recordID' is not marked queryable"; uuid = ECDD0C97-550F-4DD5-942D-AF4DF8917EEB; container ID = "iCloud.com.kukodajanos.Movie-Buffs">

let query = CKQuery(recordType: "UserSetting", predicate: NSPredicate(format: "recordID != %@", CKRecordID(recordName: loggedInUserRecordName!)))

【问题讨论】:

    标签: ios cloudkit


    【解决方案1】:

    如果您选择不对查询使用谓词,则只需手动设置 ID 上的查询索引。如果您在任何自定义字段名称上使用谓词,例如:

    例如

    let predicate = NSPredicate(format: "UserRecordID = %@", selectedUser!.userRecordID!.recordName)
    let query = CKQuery(recordType: recordType, predicate: predicate)
    

    您不会遇到此问题。

    【讨论】:

      【解决方案2】:

      我找到了。也可以添加元索引。

      【讨论】:

      • 这解决了我的问题。但奇怪的是,在上周突然停止从 CloudKit 提取信息之前,该应用程序已经运行了至少 6 个月。我必须勾选该框才能再次修复同步。
      • 我在尝试使用“TRUEPREDICATE”格式的谓词查询特定类型时遇到了这个问题。您必须打开记录 ID 上的索引才能返回一个类型的所有记录,这似乎有点奇怪......
      猜你喜欢
      • 1970-01-01
      • 2021-12-05
      • 2012-05-22
      • 2020-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多