不兼容的整数指向“int *”从“int”分配的指针转换
我还有另一个讨厌的警告,我想走了。 基本上,我有一个像这样的int声明: @property (nonatomic, assign) int *myInt;
并像这样设置: myInt = 0;
。 它也在实现文件中被合成。 我得到了一个警告,我设置int的值的行,它说不Incompatible intiger to pointer conversion assigning to 'int *' from 'int'.
我该怎么办才能解决这个问题?
错误信息中有一个很大的提示!
在C和Objective C中, int
是一个原始数据types。 你已经写了int *
,意思是“一个指向int的指针”,而它看起来像你只是想要一个int。
所以改变你的财产:
@property (nonatomic, assign) int myInt;
有关更多信息,谷歌“C指针”,你会发现这样的信息: http : //pw1.netcom.com/~tjensen/ptr/pointers.htm
是的,只需从声明中删除星号( *
)即可。
例如.declare BOOL isChecked而不是BOOL * isChecked 。
解决这个问题的另一种方法是简单地不声明一个指针(删除星号):
@interface ViewController : UIViewController { NSUInteger myObjcInt; // unsigned ( >= 0 ) NSObject int, yo }
int *MyInt
是指向int的指针,而不是int。
正如别人告诉你的,只要删除*
,你将有一个正规的int。