NSUInteger铸造

时间:2014-08-23 21:23:13

标签: objective-c

我有以下声明:

NSLog(@"The count of the book is now: %i", [book.book count]);

这让我觉得我使用了错误的格式参数。

  • 1)为什么我不能将计数打印为整数? (这不是最合理的吗?)
  • 2)写上述陈述的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

您可以,但可能不应该将其打印为有符号整数,因为它可能包含溢出有符号整数的值。另外,NSUInteger被定义为unsigned int或unsigned long,具体取决于平台是32位还是64位,因此您可以通过转换为unsigned long然后使用unsigned long格式说明符来处理它。

NSLog(@"The count of the book is now: %lu", (unsigned long)[book.book count]);