如何在目标C中将NSInteger值转换为int值?

时间:2013-05-10 12:07:56

标签: ios objective-c int nsuinteger

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

以及如何在NSUInteger中打印NSLog值,我尝试了%@,%d,%lu这些不起作用并抛出 Ex-Bad Access 错误。

谢谢

4 个答案:

答案 0 :(得分:72)

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

有关详情,请查看here

答案 1 :(得分:3)

显式转换为int

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

虽然

NSLog(@"%lu",foo);

可以在当前版本的OSX上正常运行。它不安全,因为NSUInteger在其他构建中被typedeffed为unsigned int。比如iOS。严格的答案是先施展它:

NSLog(@"%lu",(unsigned long)foo);

答案 2 :(得分:1)

大家好为我工作......

我试过了..

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

//output   
inbox_count=9

感谢所有人..

答案 3 :(得分:0)

这很简单,

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


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