将对象中的值从1更改为true

时间:2012-10-05 19:06:04

标签: ios format-specifiers

我有一个包含值1或0的对象,用于true或false。例如,让我们调用我的对象Stuff和stuff看起来像这样。

@interface Stuff : NSObject {

NSString *_boolValue1;
NSString *_boolValue2;
}

当我用值填充我的实体时,例如:Stuff * stuff = [[Stuff alloc] init ...]如果我使用NSLog显示存储在boolValue1和boolValue2中的值,它们可能会输出1或0。我想使用NSLog输出类似[stuff.boolValue1 == 1? @“真假”]。我错过了什么?我收到一个错误,格式指定类型'id'但参数的类型为'BOOL'...

NSString *myStr = [NSString stringWithFormat:@"%@", [stuff.boolValue1 isEqualToString:@"1" ? @"true" : @"false"]];

1 个答案:

答案 0 :(得分:1)

你的括号位于错误的位置,因为isEqualToString运算符返回bool。

NSString *myStr = [NSString stringWithFormat:@"%@", [stuff.boolValue1 isEqualToString:@"1"] ? @"true" : @"false"];

或更简单,更典型的方式,使用以下评论中的建议:

NSString *myStr = [NSString stringWithFormat:@"%@", [stuff.boolValue1 boolValue] ? @"true" : @"false"];