web-dev-qa-db-fra.com

NSPredicate pour tester les chaînes NULL et vides

J'ai un NSArray et j'ai besoin de filtrer toutes les chaînes qui sont nulles ou plutôt, ont '' (chaîne vide). Comment je fais ça? J'ai essayé de faire:

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

mais cela ne semble pas fonctionner. Ou peut-être que oui, mais il existe différents types de null ...

72
Doz

Si vous n'utilisez pas Core Data, vous pouvez faire:

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

Si la chaîne est vide, cela échouera (car 0 == 0). De même, si name est nil, il échouera également, car [nil length] == 0.

145
Dave DeLong

Je pense que cela devrait fonctionner:

NSPredicate *predicateName = [NSPredicate predicateWithFormat:@"name!=nil AND name!=''"]; 
73
josema.vitaminew
 NSPredicate *predicateName = [NSPredicate predicateWithFormat:@"name!=NULL"];
12
chroww

Ce prédicat a fonctionné pour moi:

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