【发布时间】:2013-05-05 02:46:56
【问题描述】:
如何在objectiveC中将NSUInteger值转换为int值?
还有如何在 NSLog 中打印 NSUInteger 值,我试过 %@,%d,%lu 这些都不起作用并抛出 Ex-Bad Access 错误。
谢谢
【问题讨论】:
-
这是
%lu,而不是@lu。
标签: ios objective-c int nsuinteger
如何在objectiveC中将NSUInteger值转换为int值?
还有如何在 NSLog 中打印 NSUInteger 值,我试过 %@,%d,%lu 这些都不起作用并抛出 Ex-Bad Access 错误。
谢谢
【问题讨论】:
%lu,而不是@lu。
标签: ios objective-c int nsuinteger
您好,它为我工作...
我试过这个..
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
【讨论】:
NSUInteger intVal = 10;
int iInt1 = (int)intVal;
NSLog(@"value : %lu %d", (unsigned long)intVal, iInt1);
更多参考,请看here
【讨论】:
NSUInteger。所以最后一行应该是NSLog(@"the value is : %lu %d", (unsigned long)intVal, iInt1);。
显式转换为 int
NSUInteger foo = 23;
int bar = (int)foo;
虽然
NSLog(@"%lu",foo);
在当前的 OSX 版本上可以正常工作。这是不安全的,因为 NSUInteger 在其他版本中被定义为 unsigned int 。比如iOS。严格的答案是先投射:
NSLog(@"%lu",(unsigned long)foo);
【讨论】: