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.
Je pense que c'est ça:
BOOL boolValue = [myString boolValue];
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.
if ([string isEqualToString: @"YES"])
foo();
else
bar();
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.
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"
}
}
}