I want to query CloudKit for all the records with a blank date (0/00/0000 00:00:00) and I don't know how to make a predicate that will do it.
Here is what I've tried, and the associated errors:
let predicate = NSPredicate(format: "ready == nil") // <ready != nil>: <nil> is not a function expression
let predicate = NSPredicate(format: "ready == NIL") // <ready == nil>: <nil> is not a function expression
let predicate = NSPredicate(format: "ready != NULL") // <ready != nil>: <nil> is not a function expression
let predicate = NSPredicate(format: "ready == %@", NSNull()) // NSNull not allowed in comparison expression
let predicate = NSPredicate(format: "ready == $NULL") // Unable to parse the format string "ready == $NULL"
let predicate = NSPredicate(format: "ready == $BLANK") // <ready == $BLANK>: <$BLANK> is not a function expression
let blankDate: Date = Date.init()
let predicate = NSPredicate(format: "ready == %@", blankDate as NSDate)
let haveADate = NSPredicate(format: "ready > %@", NSDate.distantPast as NSDate)
let predicate = NSCompoundPredicate(notPredicateWithSubpredicate: haveADate) // Inverting a valid one doesn't work either
I believe your issue is similar to this one .
Instead of "ready == %@"
, you should try using "(ready >= %@) AND (ready <= %@)"
with two reference values to compare to.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.