如何将 NSUInteger
值转换为 int
值在Objective-C中?
还有就是如何在 NSLog
中打印 NSUInteger
值,我尝试了 %@,%d,%lu
,但它们都不起作用并且会抛出Ex-Bad Access错误。
谢谢
如何将 NSUInteger
值转换为 int
值在Objective-C中?
还有就是如何在 NSLog
中打印 NSUInteger
值,我尝试了 %@,%d,%lu
,但它们都不起作用并且会抛出Ex-Bad Access错误。
谢谢
NSUInteger intVal = 10;
int iInt1 = (int)intVal;
NSLog(@"value : %lu %d", (unsigned long)intVal, iInt1);
了解更多,请查看此处
。NSUInteger
。因此,最后一行应该是 NSLog(@"the value is : %lu %d", (unsigned long)intVal, iInt1);
。 - Nikolai Ruheint类型的显式转换
NSUInteger foo = 23;
int bar = (int)foo;
NSLog(@"%lu",foo);
在当前版本的OSX上可以正常工作。但在其他构建中,如iOS,由于NSUInteger被定义为无符号整数,因此不安全。严格来说,需要先将其转换:
NSLog(@"%lu",(unsigned long)foo);
NSUInteger inbox_count=9;
NSLog(@"inbox_count=%d",(int)inbox_count);
//output
inbox_count=9
就这么简单,
NSUInteger uintV = 890;
int intVal = (int) uintV;
NSLog(@"the value is : %lu", (unsigned long)intVal);
这将打印出类似于这样的内容,
该值为:890
%lu
,不是@lu
。 - Richard J. Ross III