web-dev-qa-db-ja.com

NSStringをObjective-CでBOOLに解析する方法は?

IOS用Objective-Cでプログラミングしています。 NSString型のオブジェクトをBOOL型のスカラーに解析したいと思います。

値があり、@ "YES"または@ "NO"のいずれかになることを知っていますが、YES(または)NO値はNSStringであり、NSStringをBOOLに変更したいだけです。

どうやってやるの?

知っているなら答えてください。

読んでくれてありがとう。

52
Fire Fist

これだと思う:

BOOL boolValue = [myString boolValue];
149
bschultz

おそらくNSStringの-​​ -boolValue 。ドキュメントを直接引用するには:

[受信者のテキストのブール値を返します]。 「Y」、「y」、「T」、「t」、または1〜9の数字のいずれかが検出されると、YESを返します。メソッドは末尾の文字を無視します。受信者が数値の有効な10進テキスト表現で始まっていない場合は、NOを返します。

それはあなたの入力ケースと一致するようです。

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

これはおそらく、次のような条件付きで解決するのが最善でしょう。

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

これがお役に立てば幸いです、あなたのプログラミングで幸運を。

0
Marcus Buffett

このプロパティは、文字列が「true」の場合もtrueを返す必要があります。そのため、拡張が必要だと思います...

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

}

0
Kvant