2009-01-27 4 views

Répondre

3

Il semble que ma chaîne dans le débogueur rapportait que (null) mais qui était dû à la façon dont il était affecté, je l'ai fixé et maintenant il est assujetti comme nul. Cela a résolu mon problème.

Merci!

27

Est-il possible que votre chaîne n'est pas en fait nil, et est plutôt juste une chaîne vide? Vous pouvez essayer de tester si [myString length] == 0.

+1

Ou! [MyString length] – Shmidt

+0

pourquoi cela n'a pas encore été sélectionné comme réponse! – Umitk

3

longueur Avis = 0 ne doit pas nécessairement dire qu'il est nul

NSString *test1 = @""; 
NSString *test2 = nil; 

Ils ne sont pas les mêmes. Bien que la longueur est 0.

16

Vous pouvez trouver more on objective C string here.

+ (BOOL) stringIsEmpty:(NSString *) aString { 

    if ((NSNull *) aString == [NSNull null]) { 
     return YES; 
    } 

    if (aString == nil) { 
     return YES; 
    } else if ([aString length] == 0) { 
     return YES; 
    } else { 
     aString = [aString stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]]; 
     if ([aString length] == 0) { 
      return YES; 
     } 
    } 

    return NO; 
} 

+ (BOOL) stringIsEmpty:(NSString *) aString shouldCleanWhiteSpace:(BOOL)cleanWhileSpace { 

    if ((NSNull *) aString == [NSNull null]) { 
     return YES; 
    } 

    if (aString == nil) { 
     return YES; 
    } else if ([aString length] == 0) { 
     return YES; 
    } 

    if (cleanWhileSpace) { 
     aString = [aString stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]]; 
     if ([aString length] == 0) { 
      return YES; 
     } 
    } 

    return NO; 
} 
7

vous pouvez vérifier votre chaîne obtenir en utilisant ce

if(myString==(id) [NSNull null] || [myString length]==0 || [myString isEqualToString:@""]) 
    { 
    //String is null or bad response 
    } 
0

j'ai rencontré ce problème aujourd'hui. Malgré l'attribution d'une chaîne pour être nul: NSString *str = nil;, le test if (str == nil) a retourné FALSE! Changer le test à if (!str) a fonctionné, cependant.

Questions connexes