web-dev-qa-db-fra.com

Comment analyser NSString dans BOOL dans Objective-C?

Je programme en Objective-C pour iOS. Je voudrais analyser un objet de type NSString dans un scalaire de type BOOL.

J'ai une valeur et je sais que ce sera soit @ "OUI" ou @ "NON", mais cette valeur est OUI (ou) NON est NSString et je veux juste changer NSString en BOOL.

Comment puis je faire ça?

S'il vous plaît répondez-moi si vous savez.

Merci d'avoir lu.

52
Fire Fist

Je pense que c'est ça: 

BOOL boolValue = [myString boolValue];
147
bschultz

Vous devriez probablement utiliser NSString 's -boolValue . Pour citer directement la documentation:

[Renvoie la valeur booléenne du texte du destinataire. Retourne OUI le rencontrer l'un de "Y", "y", "T", "t" ou un chiffre 1-9 - la méthode ignore tous les caractères de fin. Renvoie NO si le destinataire ne le fait pas commencez par une représentation textuelle décimale valide d’un nombre.

Cela semblerait correspondre à vos cas d'entrée.

22
Tommy
if ([string isEqualToString: @"YES"])
  foo();
else
  bar();
2
user23743

Cela serait probablement mieux résolu avec un conditionnel, par exemple:

if ([myString isEqualToString:@"YES"])
    myBool = YES;
else if ([myString isEqualToString:@"NO"])
    myBool = NO;

J'espère que cela vous a aidé, bonne chance dans votre programmation.

0
Marcus Buffett

Cette propriété doit également renvoyer true si string est 'true', c'est pourquoi je pense qu'une extension est nécessaire ...

extension NSString{
 var boolValueExtended: Bool {
    get{
        return boolValue ||
            self.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet()).uppercaseString == "TRUE"
    }
}

}

0
Kvant