NSPredicate для проверки NULL и пустых строк
У меня есть NSArray
и вам нужно отфильтровать любые строки, которые являются нулевыми или, скорее, имеют '' (пустая строка). Как мне это сделать? Я пробовал делать:
NSPredicate *predicateName = [NSPredicate predicateWithFormat:@"(name!=nil)"];
но это, похоже, не работает. Или, может быть, это происходит, но существуют разные типы нулей...
Ответы
Ответ 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"]