I have yet another pesky warning I would like gone. Basically, I have an int declared like this: @property (nonatomic, assign) int *myInt;
and set like this: myInt = 0;
. It is also synthesized in the implementation file. I am getting a warning on the line where I set the int's value and it says Incompatible intiger to pointer conversion assigning to 'int *' from 'int'.
What should I do to fix this?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
There's a big hint in the error message!
In C and Objective C, an int
is a primitive data type. You've written int *
, which means "a pointer to an int", whereas it looks like you just wanted an int.
So change your property to this:
@property (nonatomic, assign) int myInt;
For more info, google "C pointers" and you'll find information like this: http://pw1.netcom.com/~tjensen/ptr/pointers.htm
回答2:
Yes, simply remove asterisk (*
) from declaration.
for example.declare BOOL isChecked instead of BOOL * isChecked.
回答3:
Another way to resolve this is to simply not declare a pointer (drop the asterisk):
@interface ViewController : UIViewController {
NSUInteger myObjcInt; // unsigned ( >= 0 ) NSObject int, yo
}
回答4:
int *MyInt
is a pointer to int, not an int.
As others told you, just remove the *
and you will have a regular int.