Каждый раз, когда это вызывается, вы планируете новый таймер, поэтому в вашем примере вы получите оба.
Обычно я не рекомендую scheduledTimerWithTimeInterval:...
по этой причине.Теперь у вас нет возможности отменить таймер.Вы должны создать NSTimer*
ivar следующим образом:
@interface ... { }
@property (nonatomic, readwrite, retain) NSTimer *updateTimer;
@end
@implementation ...
@synthesize updateTimer=updateTimer_;
- (void)setUpdateTimer:(NSTimer *)aTimer {
if (aTimer != updateTimer_) {
[aTimer retain];
[updateTimer_ invalidate];
[updateTimer_ release];
updateTimer_ = aTimer;
}
}
...
self.timer = [NSTimer timerWithTimenterval:60 target:self selector:@selector(updateMethod) userInfo:nil repeats:YES];
Это автоматически очистит старый таймер, когда вы установите новый таймер.
Обратите внимание, что логика базируется на строках пользовательского интерфейса (@«1 минута») нарушит локализацию, если вы когда-нибудь захотите перевести ее на другие языки.Вместо этого вы обычно либо просто используете row
для определения значения, либо добавляете к arrayNo
небольшие словари или объекты, которые будут содержать метку и значение.