User
我的目标是从我在 s 数组中指定的 CloudKit获取记录,CKRecord.ID
但前提是它们的更新时间比我在本地跟踪的上次更新日期更新。
我正在执行以下 CloudKit 查询:
var predicate:NSPredicate
if let lastChecked = defaults.object(forKey: "lastUserFetch") as? Date{
//Subsequent fetches
predicate = NSPredicate(format: "modificationDate > %@ AND recordID IN %@", argumentArray: [lastChecked, userRecordIDs])
}else{
//First fetch
predicate = NSPredicate(format: "recordID IN %@", argumentArray: [userRecordIDs])
}
let query = CKQuery(recordType: "User", predicate: predicate)
let operation = CKQueryOperation(query: query)
...
我最初设置lastUserFetch
为nil
我的应用程序启动时,并且查询的“第一次获取”部分成功。我取回所有用户记录。
但是一旦我在查询完成后设置我的lastUserFetch
日期:
defaults.set(Date(), forKey: "lastUserFetch")
包含该部分时,我会0
返回记录。modificationDate > %@
当然,我修改了 CloudKit 仪表板中的记录,我可以看到它们modificationDate
已经更新并且比我的lastUserFetch
日期更新,但它们仍然没有在我的搜索结果中返回。
如何将modificationDate
比较与recordID IN
查询结合起来?