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"]