Подтвердить что ты не робот

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

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

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

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

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

Ответ 3

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

Ответ 4

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

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