整数の場合、私はNSNumber
を使用します。しかし、YESとNOはオブジェクトではありません。私の知る限り。 NSDictionary
にオブジェクトを追加することはできますか?どのようにNSDictionaryにブール値を追加できますか?
ブーリアンのラッパークラスが見つかりませんでした。何かありますか?
整数の場合、私はNSNumber
を使用します。しかし、YESとNOはオブジェクトではありません。私の知る限り。 NSDictionary
にオブジェクトを追加することはできますか?どのようにNSDictionaryにブール値を追加できますか?
ブーリアンのラッパークラスが見つかりませんでした。何かありますか?
NSNumberを使用します。
これは、整数などと同様にブール値をとるinitとnumber ...メソッドを持っています。
NSNumber class referenceから:
// Creates and returns an NSNumber object containing a
// given value, treating it as a BOOL.
+ (NSNumber *)numberWithBool:(BOOL)value
と:
// Returns an NSNumber object initialized to contain a
// given value, treated as a BOOL.
- (id)initWithBool:(BOOL)value
と:
// Returns the receiver’s value as a BOOL.
- (BOOL)boolValue
リテラルとして宣言していて、打ち鳴らすv3.1のを使用している場合、またはリテラルとして宣言している場合は@NO/@YESを使用してください。例えば。その詳細は
NSMutableDictionary* foo = [@{ @"key": @NO } mutableCopy];
foo[@"bar"] = @YES;
:
コンパイルエラーを取得します:NSMutableDictionary *をNSDictionary型で初期化する互換性のないポインタ型。宣言をNSDictionaryに変更すると、コンパイラエラーが発生します。NSDictionary * – Tony
型のオブジェクトに見つからない辞書要素を書き込む予想されるメソッドリテラルはNSMutableDictionaryではなくNSDictionaryを作成します。したがって、 '@ {@" key ":@NO}'は可変ではないので、 'foo [@" bar "]'に '@ YES 'を割り当てることはできません。 – redhotvengeance
うわー、そのタイポに申し訳ありません、私はそれを更新しました。 – sabalaba
新しい構文
dictionary[@"key1"] = @(boolValue);
dictionary[@"key2"] = @YES;
構文はNSDictionary
に受け入れられるNSNumber
、へBOOL
変換Apple LLVM Compiler 4.0
以来。
これは受け入れられる回答である必要があります。 –
まだ動作、本当にありがとう男! –
jcampbell1は今、あなたがNSNumbersのためのリテラル構文を使用することができ、指摘したように:出力は以下のようになります
NSMutableDictionary *dic = [[NSMutableDictionary alloc] init];
[dic setObject:[NSNumber numberWithBool:TRUE] forKey:@"Pratik"];
[dic setObject:[NSNumber numberWithBool:FALSE] forKey:@"Sachin"];
if ([dic[@"Pratik"] boolValue])
{
NSLog(@"Boolean is TRUE for 'Pratik'");
}
else
{
NSLog(@"Boolean is FALSE for 'Pratik'");
}
if ([dic[@"Sachin"] boolValue])
{
NSLog(@"Boolean is TRUE for 'Sachin'");
}
else
{
NSLog(@"Boolean is FALSE for 'Sachin'");
}
:
ブールがある
NSDictionary *data = @{
// when you always pass same value
@"someKey" : @YES
// if you want to pass some boolean variable
@"anotherKey" : @(someVariable)
};
はこれを試してみてくださいTRUE「」Pratik '
ブールのためFALSEは' サチン「
'[NSNumber numberWithBool:NO]'と '[NSNumber numberWithBool:YES]'を実行することもできます。 –
グレート!私は内部的にブールを0/1として保存していると思いますか? – Thanks
@harmsが正しいです。例: 'NSDictionary * dictionary = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES]、@" someKey "、nil];' –
NSNumbersのためのリテラル構文があることを指摘しておきましょう。 '@ YES'は' [NSNumber numberWithBool:YES] 'と同じです – jcampbell1