29

如何在objectiveC中将NSUInteger价值转换为价值?int

以及如何在中打印NSUIntegerNSLog,我试过%@,%d,%lu这些都不起作用并抛出Ex-Bad Access错误。

谢谢

4

4 回答 4

83
NSUInteger intVal = 10;
int iInt1 = (int)intVal;
NSLog(@"value : %lu %d", (unsigned long)intVal, iInt1);

更多参考,看这里

于 2013-05-10T12:15:47.030 回答
4

显式转换为 int

NSUInteger foo = 23;
int bar = (int)foo;

虽然

NSLog(@"%lu",foo);

在当前的 OSX 版本上可以正常工作。这是不安全的,因为 NSUInteger 在其他版本中被定义为 unsigned int 。比如iOS。严格的答案是先投射它:

NSLog(@"%lu",(unsigned long)foo);
于 2013-05-10T12:14:28.757 回答
1

嗨,它为我工作...

我试过这个..

NSUInteger  inbox_count=9;
NSLog(@"inbox_count=%d",(int)inbox_count);

//output   
inbox_count=9

谢谢大家。。

于 2013-05-10T12:24:58.883 回答
0

就这么简单,

NSUInteger uintV = 890;
int intVal = (int) uintV;
NSLog(@"the value is : %lu", (unsigned long)intVal);


这将打印出类似这样
的内容,值为:890

于 2013-05-10T12:11:44.693 回答