objective C: Как 7 – 1 = 3?

NSLog(@"Before: %d",currentArticle); currentArticle--; NSLog(@"SUBTRACT %d",currentArticle); 

«currentArticle» – целое число. Это повторяется только один раз в моей консоли. Если я не запускаю это вычитание, число «currentArticle» остается равным 7.

Это выполняется в основном streamе и выполняется только один раз для каждого взаимодействия с пользователем.

Я также пробовал

 currentArticle = currentArticle - 1; 

С тем же результатом. Я беру сумасшедшие таблетки?

Спасибо!

Редактировать:

Объявлено следующее:

 extern int *currentArticle; 

И назначается позже как:

 currentArticle = 0; 

Я пробовал переписывать как это:

 int *curArticle; // in my .h file curArticle = 1; 

И затем я запускаю

 curArticle--; 

и он все еще уменьшается на два …

Я прошел через код и гарантировал, что другие вызовы не попадают в эту переменную. Спасибо за отзывы до сих пор, я буду продолжать взламывать ее.

Я согласен с комментариями выше. Я бы поставил доллар, что ваш код выглядит следующим образом:

 int *currentArticle = 7; // or something 

currentArticle может даже не быть указателем на int, в частности, но это, скорее всего, указатель на некоторый 4-байтовый тип. Операторы ‘-‘ и ‘++’, применяемые к указателям, уменьшаются или увеличиваются по размеру указанного типа.

То, что я думаю о: Threads (если это странная проблема, есть streamи)? Или это вызвано событием (которое запускается более одного раза)?