【发布时间】:2014-12-01 01:12:33
【问题描述】:
CKQuery 文档说:谓词中使用的键名对应于当前评估记录中的字段。键名可能包括记录元数据属性的名称例如“creationDate”或您添加到记录中的任何数据字段。
我还可以在CKQuery 中使用哪些元数据?我可以使用record.recordID.recordName,如果可以,key 是什么?
【问题讨论】:
标签: ios cloudkit ckquery ckrecord
CKQuery 文档说:谓词中使用的键名对应于当前评估记录中的字段。键名可能包括记录元数据属性的名称例如“creationDate”或您添加到记录中的任何数据字段。
我还可以在CKQuery 中使用哪些元数据?我可以使用record.recordID.recordName,如果可以,key 是什么?
【问题讨论】:
标签: ios cloudkit ckquery ckrecord
我喜欢:
NSPredicate *predicate= [NSPredicate predicateWithFormat:
@"recordID = %@",[[CKRecordID alloc] initWithRecordName:theRecordNameForThisRecord]];
【讨论】:
是的,您可以创建一个 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
【讨论】:
let pr = NSPredicate(format: "recordID = %@", CKRecordID(recordName: theSearchRecordId))
createdBy 字段上添加一个 Queryable 索引,然后它才能让我查询(它一直给我一个 .invalidArguments 错误),但之后它就起作用了。
let pr = NSPredicate(format: "recordID = %@", CKRecord.ID(recordName: theSearchRecordId))