2011-01-13 3 views
1

J'ai une petite question. Cela semble facile mais je ne le fais pas fonctionner. Tout ce que je veux, c'est vérifier si une chaîne est vide ou non. Voici ce que j'ai jusqu'à présent:Rechercher une chaîne vide

if(mystring.text != @""){ 
    myPath = [myPath stringByAppendingString:mystring.text]; 
} 
+0

En Objective-C, lorsque l'on compare les chaînes, souvenez-vous toujours utiliser 'isEqualToString:'. La comparer comme ça ne marchera pas. – Thai

+0

Cochez cette case: http://jayprakashdubey.blogspot.in/2014/09/better-way-to-check-empty-string.html –

Répondre

8

Pour comparer un NSString à un autre, vous devez utiliser isEqualToString. Vous vérifiez l'inégalité, il serait donc:

NSString *text = ...; 

if (![text isEqualToString:@""]) { 
    ... 
} 

Mais vraiment, puisque vous en train de vérifier si la chaîne est vide, vous voulez quelque chose comme

NSString *text = ...; 

if ([text length] != 0) { 
    ... 
} 

Notez que si text est nil, le code dans l'état if ne s'exécutera pas. C'est parce que [nil length] renverra 0. Pour plus d'informations à ce sujet, voir "Sending Messages to nil" dans la documentation d'Apple.


Je soupçonne mystring.text est un NSString dans votre cas, il serait

if ([mystring.text length] != 0) { 
    myPath = [myPath stringByAppendingString:mystring.text]; 
} 
+0

Merci. Fonctionne comme il se doit :-) – Crazer

0

j'utiliser quelque chose comme:

if(someString && [someString lenght]) 
    // string is not empty 
+0

La première vérification est inutile; si 'someString' est' nil', '[someString length]' retournera une valeur false-y quand même. – mipadi

0

Je vérifie habituellement si la longueur est> 0 pour un test positif, qui gère également si nul.

quelque chose comme: if ([someString length] > 0) { // do something with someString }

3

vous pouvez essayer ci-dessous quelques lignes de code:

NSString *trimedString = [someString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; 


if(trimedstr != [NSNull null]&& ![trimedstr isEqualToString:@""]) 
{ 
    if([trimedstr length]>0) 
    { 
     NSLog(@"%@", trimedstr); 
    } 
    else 
    NSLog(@"%@",@"this is empty string"); 
}