NSPredicate测试NULL和空字符串

时间:2011-09-10 03:19:07

标签: ios objective-c nspredicate

我有一个NSArray并且需要过滤掉任何null的字符串,或者更确切地说是'(空字符串)。我怎么做?我试过了:

NSPredicate *predicateName = [NSPredicate predicateWithFormat:@"(name!=nil)"]; 

但这似乎不起作用。或者它可能会有,但有不同种类的空...

4 个答案:

答案 0 :(得分:145)

如果您不使用Core Data,您可以这样做:

NSPredicate *predicateName = [NSPredicate predicateWithFormat:@"name.length > 0"];

如果字符串为空,则会失败(因为0 == 0)。同样,如果namenil,它也会失败,因为[nil length] == 0

答案 1 :(得分:71)

我认为这应该有效:

NSPredicate *predicateName = [NSPredicate predicateWithFormat:@"name!=nil AND name!=''"]; 

答案 2 :(得分:12)

 NSPredicate *predicateName = [NSPredicate predicateWithFormat:@"name!=NULL"];

答案 3 :(得分:7)

这个谓词对我有用:

[NSPredicate predicateWithFormat:@"(%K== nil) OR %K.length == 0", @"imageUrl", @"imageUrl"]