19

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

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

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

任何人都可以有一个ide

4

1 回答 1

56

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

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
}
于 2013-09-24T06:03:53.903 回答