我有一个NSArray
,需要过滤掉所有为null或具有''(空字符串)的字符串。我怎么做?我试着做:
NSPredicate *predicateName = [NSPredicate predicateWithFormat:@"(name!=nil)"];
但这似乎不起作用。也许确实如此,但是有不同类型的null ...
Answers:
如果您不使用核心数据,则可以执行以下操作:
NSPredicate *predicateName = [NSPredicate predicateWithFormat:@"name.length > 0"];
如果字符串为空,则将失败(因为0 == 0
)。同样,如果name
是nil
,它也会失败,因为[nil length] == 0
。
name.length > 1
为sqlite in name > 1
...虽然应该如此length(name) > 1
.length
。我不得不使用name!=nil AND name!=''
@ josema.vitaminew这样的帖子
我认为这应该工作:
NSPredicate *predicateName = [NSPredicate predicateWithFormat:@"name!=nil AND name!=''"];
这个谓词为我工作:
[NSPredicate predicateWithFormat:@"(%K== nil) OR %K.length == 0", @"imageUrl", @"imageUrl"]