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