【问题标题】:Am I able to use recordID.recordName in a CKQuery?我可以在 CKQuery 中使用 recordID.recordName 吗?
【发布时间】:2014-12-01 01:12:33
【问题描述】:

CKQuery 文档说:谓词中使用的键名对应于当前评估记录中的字段。键名可能包括记录元数据属性的名称例如“creationDate”或您添加到记录中的任何数据字段。

我还可以在CKQuery 中使用哪些元数据?我可以使用record.recordID.recordName,如果可以,key 是什么?

【问题讨论】:

    标签: ios cloudkit ckquery ckrecord


    【解决方案1】:

    我喜欢:

    NSPredicate *predicate= [NSPredicate predicateWithFormat:
          @"recordID = %@",[[CKRecordID alloc] initWithRecordName:theRecordNameForThisRecord]];
    

    【讨论】:

      【解决方案2】:

      是的,您可以创建一个 CKQuery 来搜索这样的记录 ID:

      var query = CKQuery(recordType: recordType, predicate: NSPredicate(format: "%K == %@", "creatorUserRecordID" ,CKReference(recordID: theSearchRecordId, action: CKReferenceAction.None)))
      

      SearchRecordId 是您要查找的记录ID.recordName

      元数据字段为recordID、recordType、creationDate、creatorUserRecordID、modificationDate、lastModifiedUserRecordID、recordChangeTag

      https://developer.apple.com/library/ios/documentation/CloudKit/Reference/CKRecord_class/index.html#//apple_ref/doc/uid/TP40014044-CH1-SW14

      【讨论】:

      • 神圣的通心粉它有效,我一直在寻找这个超过一个月的时间,表达我的情况:let pr = NSPredicate(format: "recordID = %@", CKRecordID(recordName: theSearchRecordId))
      • 我必须在 CloudKit 仪表板的 createdBy 字段上添加一个 Queryable 索引,然后它才能让我查询(它一直给我一个 .invalidArguments 错误),但之后它就起作用了。
      • 对于我来说,使用 Swift 5.1,let pr = NSPredicate(format: "recordID = %@", CKRecord.ID(recordName: theSearchRecordId))
      猜你喜欢
      • 1970-01-01
      • 2013-02-01
      • 2011-12-12
      • 2016-11-07
      • 2015-07-10
      • 2012-07-09
      • 2013-10-21
      • 2020-03-09
      • 2019-03-20
      相关资源
      最近更新 更多