からタイマーを呼び出していviewDidLoadます。タイマーがセレクターを初めて呼び出すとき、期待される結果は問題ありません。しかし、徐々に呼び出しが行われると、関数は何らかの形でセレクターによって複数回呼び出されます。NSLog出力数が増加していることを示すログを記録しました。以下のコードがあります。状況が明確になることを願っています。
-(void)viewDidLoad
{
    remainingTicks = 10;
    [self updateLabel];
    myTimer = [NSTimer scheduledTimerWithTimeInterval:1.0
                       target:self
                       selector:@selector(handleTimerTick)
                       userInfo:nil
                       repeats:YES];
}
-(void)handleTimerTick
{
    remainingTicks--;
    [self updateLabel];
    if (remainingTicks <= 0) {
        [myTimer invalidate];
        myTimer = nil;
        UIButton *but = [[UIButton alloc] init];
        if (answerAt == 0) {
            [buttonA setBackgroundColor:[UIColor greenColor]];
        }
        else if (answerAt == 1) {
            [buttonB setBackgroundColor:[UIColor greenColor]];
        }
        else if (answerAt == 2) {
            [buttonC setBackgroundColor:[UIColor greenColor]];
        }
        else {
            [buttonD setBackgroundColor:[UIColor greenColor]];
        }
        [self performSelector:@selector(next:) withObject:but afterDelay:1.5 ];       
    }
}
-(void)updateLabel
{
    timerLabel.text = [[NSNumber numberWithUnsignedInt: remainingTicks] stringValue];
}