根据Apple文档,lastModifiedUserRecordID是在iCloud上自动生成的系统字段。
我想从我最近修改的公共iCloud数据库中获取记录。
我在CloudKit仪表板上将“ modifiedBy”设置为Queryable并添加了以下谓词:
let userId = CKRecord.Reference(recordID: userCKRecordID, action: .none) lastModifiedPred = NSPredicate(format: "lastModifiedUserRecordID = %@", userId)
它不返回任何结果。如果删除此谓词,它将返回1个结果,并且我可以在仪表板上看到由记录ID(recordName)修改的最后一个与我发送它的用户recordName匹配。
奇怪的是,使用“ creatorUserRecordID”并传递与上述相同的值确实会返回正确的结果,但是我需要lastModifiedBy。
编辑:根据建议,我尝试使用实际的userCKRecord.recordName作为字符串并将此谓词发送到CloudKit。
lastModifiedPred = NSPredicate(format: "lastModifiedUserRecordID = %@", userCKRecord.recordName)
并收到此错误:
“字段\'___ modifiedBy \'的值类型为REFERENCE,无法使用过滤器值类型STRING进行查询”
如上所述,我可以使用顶部的原始谓词(使用CKRecord.ID)来查询creatorUserRecordID,但对于lastModifiedUserRecordID则无效。