Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
布尔值的Objective-C格式字符串?_Objective C_String_Nsstring_String Formatting - Fatal编程技术网

布尔值的Objective-C格式字符串?

布尔值的Objective-C格式字符串?,objective-c,string,nsstring,string-formatting,Objective C,String,Nsstring,String Formatting,布尔值使用什么格式 编辑: 示例:NSLog(@“?”,BOOL_VAL),什么是??一种方法是将其转换为字符串(因为只有两种可能性,这并不难): 我认为布尔值没有格式说明符。我建议 NSLog(@"%@", boolValue ? @"YES" : @"NO"); 因为,嗯,BOOLs在Objective-C中被称为YES或NO。在Objective-C中,BOOL类型只是一个有符号字符。从: 因此,您可以使用%d格式设置程序打印它们,但这只会打印1或0,而不会打印YES或NO 或者,您可以

布尔值使用什么格式

编辑:


示例:
NSLog(@“?”,BOOL_VAL),什么是

一种方法是将其转换为字符串(因为只有两种可能性,这并不难):

我认为布尔值没有格式说明符。

我建议

NSLog(@"%@", boolValue ? @"YES" : @"NO");

因为,嗯,
BOOL
s在Objective-C中被称为
YES
NO

在Objective-C中,
BOOL
类型只是一个有符号字符。从

因此,您可以使用
%d
格式设置程序打印它们,但这只会打印
1
0
,而不会打印
YES
NO


或者,您可以按照其他答案中的建议使用字符串。

此处记录了用于NSLog和[NSString stringWithFormat]的格式字符串:


BOOL/BOOL/boolean甚至没有提到…

使用整数格式化程序
%d
,它将打印
0
1

NSLog(@"%d", myBool);

将此内联函数添加到
.h
文件:

static inline NSString* NSStringFromBOOL(BOOL aBool) {
    return aBool? @"YES" : @"NO";
}
现在你准备好出发了

NSLog(@"%@", NSStringFromBOOL(BOOL_VAL));

只需添加下面的函数并将
BOOL
值传递给它,方法将返回
NSString

- (NSString *)boolValueToString:(BOOL)theBool {
    if (theBool == 0)
        return @"NO"; // can change to No, NOOOOO, etc
    else
        return @"YES"; // can change to YEAH, Yes, YESSSSS etc
}

我用这个创建了一个NSString类别

+ (instancetype)stringWithBool:(BOOL)boolValue {
return boolValue ? @"YES" : @"NO";
}
然后像这样使用它:

[NSString stringWithBool:boolValue];

我认为最简单的方法是:

NSLog(@" %@", @(BOOL_VAL));
@(表达)


动态计算装箱表达式,并根据其值返回相应的对象文字(即NSString表示常量char*,NSNumber表示int等)

输出字符串不应该是:“Yes”和“No”:POr“Cake”和“No Cake”。随便你喜欢什么。我喜欢蛋糕,不喜欢蛋糕!我将用x“蛋糕”替换我所有的x“是”:“否”代码:@“否蛋糕”立即:D--好吧,至少对于我的对象描述;)或者是akeisalie和akeisnotalie。%hhd是将布尔值显示为整数标志0或1的正确方法。0为false 1为true。是否%c会尝试打印ASCII字符0或1(两者都是控制字符)?这似乎是宏或函数的一个明显实用点(如果只是为了避免字符串文字在整个应用程序中传播)。只有您不需要真正避免“传播”例如ObjC coallescs不可变字符串(和其他对象)的相同值实例,这样只有一个副本驻留在内存中。宏没问题,函数没问题,复制和粘贴也没问题。这在苹果开发者网站上隐藏得很好。
[NSString stringWithBool:boolValue];
NSLog(@" %@", @(BOOL_VAL));