如何设置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"]];
下面的代码应该工作
predicate = [NSPredicate predicateWithFormat:@"firstName = nil"];