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中, BOOLtypes只是一个有符号的字符。 从<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 }