NSNumber出错

时间:2014-02-16 09:08:52

标签: ios7

我是iOS开发的新手,我试图做下面提到的事情而且它给了我一个错误:

  

ARC不允许将目标c指针隐式转换为'NSInteger *(aka int *)。

在下面的代码中,seg_pressed是分段控制的属性。

NSInteger *choice =[NSNumber numberWithInt:_seg_pressed.selectedSegmentIndex];

我做错了什么?

1 个答案:

答案 0 :(得分:1)

NSInteger是一种原始类型(很像C的“int”或“char”)。您应该将“*choice”声明为“NSNumber *”对象。

E.G:

NSNumber *choice = [NSNumber numberWithInt:_seg_pressed.selectedSegmentIndex];

NSNumber是一个Objective-C对象,而NSInteger最终变成了“long”。根据您运行的平台/架构,这可能会有所不同。正如Apple's Foundation data types doc所说:

  

构建32位应用程序时,NSInteger是一个32位整数。一个   64位应用程序将NSInteger视为64位整数。