NSPredicate для проверки на NULL и пустые строки

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

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

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

4 ответа

Решение

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

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"]
Другие вопросы по тегам