0

我知道这很可悲,但是当我有一个NSString并且我希望它有一个int值时,我会使用%d它里面的字符串值。我有什么用BOOL。我试过%b了,但什么也没做。它是什么?

4

5 回答 5

1

只需使用 %d,BOOL 是一个整数。

于 2012-11-14T16:17:37.013 回答
1

听起来这些对应于printf格式说明符,它缺乏打印布尔值的能力。

您可以%d像使用整数(它是)一样使用它,或者在它为真时打印两个字符串之一:%s作为格式说明符,参数在(b) ? "true" : "false"哪里b是你的BOOL变量。

注意:这是从 C 程序员的角度来看的;您可能必须稍微不同地编写这些字符串常量。如果%s这里的说明符需要一个NSString,您可能应该使用@"true"and@"false"来代替。

于 2012-11-14T16:22:49.823 回答
1

如果你想要更易读的东西,你总是可以定义一个宏来给你可读的输出

#define STRING_FROM_BOOL(b) (b ? @"YES" : @"NO")

NSLog(@"%@", STRING_FROM_BOOL(NO)); //=> NO
于 2012-11-14T16:23:45.157 回答
0

正在考虑类似的事情:

NSString* num = @"1";
BOOL b = [num intValue];
于 2012-11-14T16:16:23.110 回答
0

这里没有布尔print_f ref的说明符

于 2012-11-14T16:19:02.983 回答