сделать int counterPlus;
переменной экземпляра.
// MONObject.h
@interface MONObject : NSObject
{
@private
int counterPlus;
}
- (IBAction)plus;
@end
// MONObject.m
@implementation MONObject
- (id)init
{
self = [super init];
if (0 != self) {
counterPlus = 0;
}
return self;
}
- (IBAction)plus {
counterPlus++;
counterField.text = [NSString stringWithFormat:@"%d", counterPlus];
}
@end
Обновить
Чтобы уточнить ответ Матса на ваш вопрос:
причина, по которой вам следует избегать варианта static
, заключается в том, что это общая глобальная переменная.
Это означает, что одна статическая / глобальная переменная будет начинаться с нуля и увеличиваться при каждом вызове plus
в любом экземпляре.Когда вы создаете новую кнопку, ее номер в поле счетчика будет равен общему числу вызовов plus
с момента запуска вашей программы (при условии отсутствия проблем с потоками).С помощью переменной экземпляра количество будет равно количеству нажатий plus
для этого экземпляра этой кнопки.
Глобальные переменные, как вы можете видеть из комментариев, также имеют значение «ЗЛО».Они являются большим источником проблем, и их лучше избегать.