IOS用Objective-Cでプログラミングしています。 NSString型のオブジェクトをBOOL型のスカラーに解析したいと思います。
値があり、@ "YES"または@ "NO"のいずれかになることを知っていますが、YES(または)NO値はNSStringであり、NSStringをBOOLに変更したいだけです。
どうやってやるの?
知っているなら答えてください。
読んでくれてありがとう。
これだと思う:
BOOL boolValue = [myString boolValue];
おそらくNSString
の- -boolValue
。ドキュメントを直接引用するには:
[受信者のテキストのブール値を返します]。 「Y」、「y」、「T」、「t」、または1〜9の数字のいずれかが検出されると、YESを返します。メソッドは末尾の文字を無視します。受信者が数値の有効な10進テキスト表現で始まっていない場合は、NOを返します。
それはあなたの入力ケースと一致するようです。
if ([string isEqualToString: @"YES"])
foo();
else
bar();
これはおそらく、次のような条件付きで解決するのが最善でしょう。
if ([myString isEqualToString:@"YES"])
myBool = YES;
else if ([myString isEqualToString:@"NO"])
myBool = NO;
これがお役に立てば幸いです、あなたのプログラミングで幸運を。
このプロパティは、文字列が「true」の場合もtrueを返す必要があります。そのため、拡張が必要だと思います...
extension NSString{
var boolValueExtended: Bool {
get{
return boolValue ||
self.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet()).uppercaseString == "TRUE"
}
}
}