Objective c 如何将布尔值解析为NSString

Objective c 如何将布尔值解析为NSString,objective-c,nsstring,boolean,Objective C,Nsstring,Boolean,我有下面的方法进行了一些stringbuilding,但不幸的是,我在将布尔值解析为NSString时遇到了问题 代码如下: - (void)setToolOutput:(int) outputNumber state: (BOOL) value { NSString *str = [NSString stringWithFormat:@"this=%i is=%c",outputNumber,value]; NSData* data = [str dataUsingEncod

我有下面的方法进行了一些stringbuilding,但不幸的是,我在将布尔值解析为NSString时遇到了问题

代码如下:

- (void)setToolOutput:(int) outputNumber state: (BOOL) value {
    NSString *str =  [NSString stringWithFormat:@"this=%i is=%c",outputNumber,value];
    NSData* data = [str dataUsingEncoding:NSUTF8StringEncoding];
    [OutputStream write:[data bytes] maxLength:[data length]];
    NSLog(@"%@", str);
}
我试图用
%c
作为char,用
%s
作为char字符串来解析它。双向将布尔值输出为倒置的
问号


编辑:我希望它解析为
True
False

编辑:对不起,我弄错了

您还可以检查布尔值以抛出首选字符串,如“True”或“False”


布尔值基本上是一个整数,因此可以使用
%i
获取其十进制表示形式。 您通常想要的是:


NSString*booleanString=(值)@“真”:“假”

我已经试过了,根据@Paul的说法,我得到了一个例外。我认为这是三元表达式在风格上的极少数情况之一preferable@joerick这是一个非常宽泛的说法,很多时候,三元运算符会在不丢失可读性的情况下清理内容
        NSString *target = @"";
        if(tmp)
        {
            target = @"True";
        }
        else {
            target = @"False";
        }

        // use target variable as you prefer