73 votes

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 qui ont ' ' (chaîne vide). Comment dois-je m'y prendre ? J'ai essayé de le faire :

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

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

145voto

Dave DeLong Points 156978

Si vous n'utilisez pas les données de base, vous pourriez le faire :

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

Si la chaîne de caractères est vide, cette opération échouera (car 0 == 0 ). De même, si name es nil il échouera également, car [nil length] == 0 .

74voto

josema.vitaminew Points 1666

Je pense que ça devrait marcher :

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

12voto

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

7voto

Josip B. Points 451

Ce prédicat a fonctionné pour moi :

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

0voto

Rafał Wójcik Points 246

J'ai trouvé une solution pour cela avec un bon code et qui fonctionne bien.

[NSPredicate predicateWithFormat:@"NOT name MATCHES '^\\s*$'"];

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X