我有一个包含值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"]];
答案 0 :(得分:1)
你的括号位于错误的位置,因为isEqualToString运算符返回bool。
NSString *myStr = [NSString stringWithFormat:@"%@", [stuff.boolValue1 isEqualToString:@"1"] ? @"true" : @"false"];
或更简单,更典型的方式,使用以下评论中的建议:
NSString *myStr = [NSString stringWithFormat:@"%@", [stuff.boolValue1 boolValue] ? @"true" : @"false"];