Почему событие, вызываемое нажатием моей кнопки, вызывается 4 раза? - PullRequest
2 голосов
/ 25 августа 2009

Вероятно, вопрос нуб, но я пытаюсь написать простое приложение для iPhone, которое увеличивает метку на количество нажатий кнопки. У меня есть следующий код:

#import "Controller.h"

int *i = 0;
@implementation Controller 
- (IBAction)buttonClicked:(id)sender {      
    NSString *numTimesClicked = [NSString stringWithFormat:@"%d",i++    ];      
    myLabel.text    = numTimesClicked;      
}
@end

Когда я нажимаю кнопку, метка обновляется кратно 4 (4,8,12,16 и т. Д.). Что я могу здесь делать не так?

1 Ответ

10 голосов
/ 25 августа 2009

Посмотрите на определение i:

int *i = 0;

i не является целым числом - это указатель на целое число. Размер int в вашей архитектуре составляет 4 байта, поэтому указатель увеличивается на 4 (это будет адрес следующего int в массиве целых чисел). Вы хотите объявить это просто int i = 0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...