0

我有一个对象,其中包含值 1 或 0 表示真或假。例如,让我们称我的对象 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"]];
4

1 回答 1

1

您的括号只是在错误的位置,因为 isEqualToString 运算符返回布尔值。

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

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

NSString *myStr = [NSString stringWithFormat:@"%@", [stuff.boolValue1 boolValue] ? @"true" : @"false"];
于 2012-10-05T19:11:44.323 回答