Objective-C格式化string为布尔?
什么格式化程序用于布尔值?
编辑:
例如: NSLog(@" ??", BOOL_VAL);
,什么是??
?
一种方法是转换为string(因为只有两种可能性,并不难):
NSLog(@" %s", BOOL_VAL ? "true" : "false");
我不认为有布尔值的格式说明符。
我会推荐
NSLog(@"%@", boolValue ? @"YES" : @"NO");
因为在Objective-C中,这个BOOL
被称为YES
或NO
。
使用整数格式化程序%d
,它将打印0
或1
:
NSLog(@"%d", myBool);
在Objective-C中, BOOL
types只是一个有符号的字符。 从<objc/objc.h>
:
typedef signed char BOOL; #define YES (BOOL)1 #define NO (BOOL)0
所以你可以使用%d
格式化程序打印它们。但是,这只会打印一个1
或0
,而不是YES
或NO
。
或者你可以使用一个string,如其他答案中所build议的。
将此macros添加到.h文件
static inline NSString* NSStringFromBOOL(BOOL aBool) { return aBool? @"YES" : @"NO"; }
现在你已经准备好了
NSLog(@"%@", NSStringFromBOOL(BOOL_VAL) );
格式化string用于NSLog和[NSString stringWithFormat]在这里logging:
布尔/布尔/布尔甚至没有提到…
我用这个创build了一个NSString类
+ (instancetype)stringWithBool:(BOOL)boolValue { return boolValue ? @"YES" : @"NO"; }
像这样使用它:
[NSString stringWithBool:boolValue];
只需添加下面的函数并将其传递给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 }