web-dev-qa-db-ja.com

BOOL値をNSMutableDictionaryに設定します

BOOL値をtrue false形式としてNSMutableDictionary(APIリクエストのJSONディクショナリとして使用します)に設定したいと思います。次の両方の方法を試しました。ただし、これらはAPIによって要求された正しい形式ではありません(APIは1/0ではなくtrue/false型としてBOOL値を必要とします)。

BOOL isDefault = YES;
[dicTemp setValue:[NSString stringWithFormat:@"%c", isDefault] forKey:@"is_default"];

//[dicTemp setValue:[NSNumber numberWithBool:isDefault] forKey:@"is_default"];

誰もがアイデアを持つことができますか

17
smartsanja

BOOLNSNumber オブジェクトでラップできます:

dicTemp[@"is_default"] = @YES;

(このコードは新しい Objective-C Literals構文 を使用しています)。

あなたが古風である場合(それは何も悪いことではありません)、上記のステートメントは次と同じです:

[dicTemp setObject:[NSNumber numberWithBool:YES]
            forKey:@"is_default"];

後でテストするには:

NSNumber *numObj = dicTemp[@"is_default"];
if ([numObj boolValue]) {
    // it was YES
}
51
trojanfoe