【问题标题】:CloudKit Server Rejected Request: Unknown field recordNameCloudKit 服务器拒绝请求:未知字段记录名称
【发布时间】:2017-09-19 00:34:26
【问题描述】:

我在 Swift 4 中做这样的CKQuery:

CKQuery(recordType: package.recordType, predicate: 
  NSPredicate(format: "NOT (recordName IN %@)", package.recordNames as CVarArg))

...我收到了这个CKError:

CKError(_nsError: CKError 0x60000024dce0: "服务器拒绝请求" (15/2000); 服务器消息 = "未知字段 'recordName'"; uuid = BCD7C8DA-04B0-4422-8A24-F6479D234706; 容器 ID = ".. .")

在查询recordName 时是否需要使用特殊键?

【问题讨论】:

    标签: cloudkit ckquery


    【解决方案1】:

    又挖了一些,发现不能直接通过recordName查询,但是可以通过recordID查询。因此,您必须构建一个 CKRecordIDs 数组并像这样进行查询,而不是比较字符串数组:

    //- 1 - Build an array of CKRecordIDs
    package.recordIDs = [CKRecordID(recordName: "..."), CKRecordID(recordName: "...")]
    
    //- 2 - Set the predicate to use the `recordID` key
    let pred = NSPredicate(format: "NOT (recordID IN %@)", package.recordIDs as CVarArg)
    
    //- 3 - Set the query and drop your mic
    CKQuery(recordType: package.recordType, predicate: pred)
    

    我希望这对其他人有所帮助。

    【讨论】:

      猜你喜欢
      • 2015-06-13
      • 2023-03-27
      • 2023-02-14
      • 2018-03-21
      • 2017-12-17
      • 1970-01-01
      • 2013-01-03
      • 2021-08-19
      • 1970-01-01
      相关资源
      最近更新 更多