简体   繁体   中英

Incompatible integer to pointer conversion assigning to 'int *' from 'int'

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?

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

Yes, simply remove asterisk ( * ) from declaration.

for example.declare BOOL isChecked instead of BOOL * isChecked .

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
}

int *MyInt is a pointer to int, not an int.
As others told you, just remove the * and you will have a regular int.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM