В моем заголовке я объявил несколько переменных как @property (nonatomic) NSInteger *soldWindows;
и использовал их для отслеживания отсчетов, увеличиваясь с _soldWindows++;
. Результат последовательно выходил в 8 раз больше, чем должен быть. Я выяснил, что моя проблема заключалась в объявлении его как указателя, поэтому я изменил его на @property (nonatomic) NSInteger soldWindows;
, который решил мою проблему.Почему указатель на NSInteger умножает значение на 8?
Мой вопрос: если он просто хранит адрес памяти, почему целочисленное значение масштабируется на 8 вместо произвольного адреса?
Помимо правильного ответа ChrisCM, похоже, нет особой причины, почему вы используете NSInteger. Поэтому просто используйте int intead. – fishinear
@fishinear В зависимости от цели 'NSInteger' является typedef для' int' или 'long'. Итак, в чем преимущество перехода на «int»? –
@fishinear Плохой совет. – rmaddy