我是iOS开发的新手,我试图做下面提到的事情而且它给了我一个错误:
ARC不允许将目标c指针隐式转换为'NSInteger *(aka int *)。
在下面的代码中,seg_pressed
是分段控制的属性。
NSInteger *choice =[NSNumber numberWithInt:_seg_pressed.selectedSegmentIndex];
我做错了什么?
答案 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位整数。