NSPredicate для проверки на NULL и пустые строки - PullRequest
72 голосов
/ 10 сентября 2011

У меня есть NSArray, и мне нужно отфильтровать все строки, которые являются нулевыми или, скорее, имеют '' (пустая строка).Как я могу это сделать?Я попытался сделать:

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

, но это не похоже на работу.Или, может быть, это так, но есть разные виды нуля ...

Ответы [ 4 ]

145 голосов
/ 10 сентября 2011

Если вы не используете Core Data, вы можете сделать:

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

Если строка пуста, это не удастся (потому что 0 == 0).Точно так же, если name равно nil, оно также потерпит неудачу, поскольку [nil length] == 0.

71 голосов
/ 21 января 2013

Я думаю, что это должно работать:

NSPredicate *predicateName = [NSPredicate predicateWithFormat:@"name!=nil AND name!=''"]; 
12 голосов
/ 20 декабря 2013
 NSPredicate *predicateName = [NSPredicate predicateWithFormat:@"name!=NULL"];
7 голосов
/ 18 ноября 2013

Этот предикат работал для меня:

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