我有一个NSArray
,需要过滤掉其中任何为 null 或者是 ''(空字符串)的字符串。我该如何实现?我已经尝试了以下代码:
NSPredicate *predicateName = [NSPredicate predicateWithFormat:@"(name!=nil)"];
但好像没有起作用。或许它确实起作用了,但有不同种类的空值...
我有一个NSArray
,需要过滤掉其中任何为 null 或者是 ''(空字符串)的字符串。我该如何实现?我已经尝试了以下代码:
NSPredicate *predicateName = [NSPredicate predicateWithFormat:@"(name!=nil)"];
但好像没有起作用。或许它确实起作用了,但有不同种类的空值...
NSPredicate *predicateName = [NSPredicate predicateWithFormat:@"name.length > 0"];
如果字符串是空的,这将失败(因为0 == 0)。同样,如果“name”是nil,它也会失败,因为[nil length] == 0。我认为这应该可以运作:
NSPredicate *predicateName = [NSPredicate predicateWithFormat:@"name!=nil AND name!=''"];
NSPredicate *predicateName = [NSPredicate predicateWithFormat:@"name!=NULL"];
这个谓词对我有用:
[NSPredicate predicateWithFormat:@"(%K== nil) OR %K.length == 0", @"imageUrl", @"imageUrl"]
name.length > 1
翻译成sqlite中的name > 1
... 而正确的翻译应该是length(name) > 1
。 - Vincent Guerci.length
一起使用。我不得不像@josema.vitaminew发布的那样使用name!= nil AND name!=''
。 - Stefan Arn