将BOOL值设置为NSMutableDictionary

sma*_*nja 17 iphone objective-c ios ios5

我想将一个BOOL值设置为NSFutableDictionary的真假格式(它将用作API请求的JSON字典).我尝试了以下两种方法.但这些不是API请求的正确格式(API需要BOOL值为true/false类型而不是1/0).

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

//[dicTemp setValue:[NSNumber numberWithBool:isDefault] forKey:@"is_default"];
Run Code Online (Sandbox Code Playgroud)

任何人都可以有一个想法

tro*_*foe 50

BOOL可以包装在一个NSNumber对象中:

dicTemp[@"is_default"] = @YES;
Run Code Online (Sandbox Code Playgroud)

(此代码使用新的Objective-C Literals语法).

如果你是老式的(没有错),那么上面的陈述与:

[dicTemp setObject:[NSNumber numberWithBool:YES]
            forKey:@"is_default"];
Run Code Online (Sandbox Code Playgroud)

稍后测试:

NSNumber *numObj = dicTemp[@"is_default"];
if ([numObj boolValue]) {
    // it was YES
}
Run Code Online (Sandbox Code Playgroud)