不兼容的整数到指针转换从'int'分配给'int *'

时间:2011-03-14 00:03:17

标签: ios objective-c xcode pointers warnings

我还有另一个令人讨厌的警告。基本上,我有一个像这样声明的int:@property (nonatomic, assign) int *myInt;并设置如下:myInt = 0;。它也在实现文件中合成。我在设置int值的行上收到警告,并说Incompatible intiger to pointer conversion assigning to 'int *' from 'int'.我该怎么做才能解决这个问题?

4 个答案:

答案 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。