我还有另一个令人讨厌的警告。基本上,我有一个像这样声明的int:@property (nonatomic, assign) int *myInt;
并设置如下:myInt = 0;
。它也在实现文件中合成。我在设置int值的行上收到警告,并说Incompatible intiger to pointer conversion assigning to 'int *' from 'int'.
我该怎么做才能解决这个问题?
答案 0 :(得分:57)
错误信息中有一个很大的提示!
在C和Objective C中,int
是原始数据类型。你写过int *
,意思是“指向int的指针”,而你看起来只是想要一个int。
所以将你的财产改为:
@property (nonatomic, assign) int myInt;
有关详细信息,请点击“C指针”,您会找到以下信息:http://pw1.netcom.com/~tjensen/ptr/pointers.htm
答案 1 :(得分:13)
是的,只需从声明中删除星号(*
)。
例如.declare BOOL isChecked 而不是 BOOL * isChecked 。
答案 2 :(得分:2)
解决此问题的另一种方法是不要声明指针(删除星号):
@interface ViewController : UIViewController {
NSUInteger myObjcInt; // unsigned ( >= 0 ) NSObject int, yo
}
答案 3 :(得分:1)
int *MyInt
是指向int的指针,而不是int
正如其他人告诉你的那样,只需删除*
即可获得常规的int。