简体   繁体   中英

Query CloudKit with NSPredicate for Date that is blank (or null or whatever)

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM