2017-05-30 23 views
1

我想查询CloudKit中是否有空白日期(0/00/0000 00:00:00)的所有记录,但我不知道如何做出一个将做到的谓词。使用NSPredicate查询CloudKit以查找空白(或空或其他)的日期

这里是我试过,以及相关的错误:

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 
+0

经过更多的研究,我相信这是不可能的。根据这里接受的答案:https://stackoverflow.com/questions/32683691/how-do-i-query-for-nil-values-with-cloudkit-js CloudKit是一个键值存储,所以如果该值没有设置,那么密钥甚至不存在。 – garafajon

回答

1

我相信你的问题是类似this one

而不是"ready == %@",你应该尝试使用"(ready >= %@) AND (ready <= %@)"与两个参考值进行比较。