我能在CKQuery中使用recordID.recordName吗?

Ján*_*nos 8 ios cloudkit ckquery ckrecord

CKQuerydoc说:谓词中使用的键名对应于当前评估记录中的字段.键名可以包括记录的元数据属性的名称,例如"creationDate"或您添加到记录中的任何数据字段.

我可以在其中使用哪些元数据CKQuery?我能用record.recordID.recordName,如果有key,它的用途是什么?

Edw*_*eer 18

是的,你可以创建一个CKQuery来搜索像这样的recordID:

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

其中,SearchRecordId是您要查找的recordID.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

  • 圣洁的通心粉它有效,我正在寻找这个超过一个月,表达我的情况:`让pr = NSPredicate(格式:"recordID =%@",CKRecordID(recordName:theSearchRecordId))` (13认同)
  • 对我来说,使用 Swift 5.1, `let pr = NSPredicate(format: "recordID = %@", CKRecord.ID(recordName: theSearchRecordId))` (2认同)