Подтвердить что ты не робот

Несовместимое целое число с преобразованием указателя, присваиваемое 'int *' из 'int'

У меня есть еще одно досадное предупреждение, которое я бы хотел уйти. В принципе, у меня есть int, объявленный следующим образом: @property (nonatomic, assign) int *myInt; и устанавливается так: myInt = 0;. Он также синтезируется в файле реализации. Я получаю предупреждение в строке, где я устанавливаю значение int, и он говорит Incompatible intiger to pointer conversion assigning to 'int *' from 'int'. Что мне делать, чтобы исправить это?

4b9b3361

Ответ 1

В сообщении об ошибке есть большой намек!

В C и Object C, int является примитивным типом данных. Вы написали int *, что означает "указатель на int", тогда как похоже, что вы просто хотели int.

Итак, измените ваше свойство на следующее:

@property (nonatomic, assign) int myInt;

Для получения дополнительной информации google "C-указатели" и вы найдете следующую информацию: http://pw1.netcom.com/~tjensen/ptr/pointers.htm

Ответ 2

Да, просто удалите звездочку (*) из объявления.

Например .declare BOOL isChecked вместо BOOL * isChecked.

Ответ 3

Другой способ разрешить это - просто не объявлять указатель (удалить звездочку):

@interface ViewController : UIViewController {
    NSUInteger myObjcInt;  // unsigned ( >= 0 ) NSObject int, yo
}

Ответ 4

int *MyInt - это указатель на int, а не int.
Как вам говорили другие, просто удалите *, и у вас будет обычный int.