我又遇到了一个很烦人的警告,希望能够解决。基本上,我声明了一个整型变量,代码如下:@property (nonatomic, assign) int *myInt;
然后这样设置:myInt = 0;
。它也在实现文件中合成了。但是,在设置整数值的那一行上,我得到了一个警告,它说:Incompatible intiger to pointer conversion assigning to 'int *' from 'int'.
我该怎么办来解决这个问题呢?
我又遇到了一个很烦人的警告,希望能够解决。基本上,我声明了一个整型变量,代码如下:@property (nonatomic, assign) int *myInt;
然后这样设置:myInt = 0;
。它也在实现文件中合成了。但是,在设置整数值的那一行上,我得到了一个警告,它说:Incompatible intiger to pointer conversion assigning to 'int *' from 'int'.
我该怎么办来解决这个问题呢?
错误信息中有个很关键的提示!
在 C 和 Objective C 中,int
是一种基本数据类型。你写的是 int *
,它表示“指向一个 int 的指针”,而你似乎只想要一个 int。
所以把你的属性改成这样:
@property (nonatomic, assign) int myInt;
如果需要更多信息,可以搜索"C指针",你会找到像这样的信息:http://pw1.netcom.com/~tjensen/ptr/pointers.htm
是的,只需要从声明中删除星号 (*
)。
例如,声明 BOOL isChecked,而不是 BOOL * isChecked。
int *MyInt
是一个指向 int 类型的指针,而不是一个 int 类型。
正如其他人告诉你的那样,只需去掉 *
,就可以得到一个普通的 int 值。
@interface ViewController : UIViewController {
NSUInteger myObjcInt; // unsigned ( >= 0 ) NSObject int, yo
}