如何设置NSPredicate来查找具有nil属性的对象

我有一个ManagedObject class ,其中一个成员是NSDate 。 我想显示未设置date的类的所有对象。 我尝试使用这样的谓词:

 NSPredicate *predicate = [NSPredicate predicateWithFormat: @"(date = NIL)"]; 

但是我仍然在设置date地方得到对象。 build立这个谓词的正确方法是什么?

我认为这是一个大小写敏感的问题。 你可以使用“nil”或“NULL”,但不能使用“NIL”。 这对我来说很好:

 NSPredicate *eventWithNoEndDate = [NSPredicate predicateWithFormat:@"endDate = nil"]; 

弄清楚了。 不能通过使用string格式的谓词来做到这一点,所以尝试使用模板的谓词,它的工作。 下面是给我的endDate设置为NULL的代码:

 NSPredicate *predicate = [NSPredicate predicateWithFormat:@"endDate = $DATE"]; predicate = [predicate predicateWithSubstitutionVariables: [NSDictionary dictionaryWithObject:[NSNull null] forKey: @"DATE"]]; 

https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Predicates/Articles/pUsing.html#//apple_ref/doc/uid/TP40001794-SW4

下面的代码应该工作

 predicate = [NSPredicate predicateWithFormat:@"firstName = nil"];