лишить законной силы nstimer в объективе-iphone - PullRequest
1 голос
/ 27 сентября 2011

У меня проблема с аннулированием NSTimer.Я инициализирую NSTimer с функцией ниже.

-(void) initLTTimer{
    [self shutLTTimer];
    [self setQuestion:questionCounter];
    isQuestionAttempt=NO;
    tmLeftTime=[NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(updateLeftTime:) userInfo:nil repeats:YES];
    NSLog(@"Timer Initialized");
}

далее я вызвал функцию updateLeftTime в ее селекторе.

- (void)updateLeftTime:(NSTimer *)theTimer {
    NSLog(@"%d",timeCounter);
    timeCounter+=1;
    tfLeftTime.text=[NSString stringWithFormat:@"%d", (QUESTION_TIME_LIMIT-timeCounter)];
    if (timeCounter>=QUESTION_TIME_LIMIT) {
        if (isQuestionAttempt==NO) {
            [self increaseDropShots];
        }
        [self setQuestionBg];
        timeCounter=0;
        [self shutLTTimer];
        [self updateQuestion:nil];
    }

}

Эта функция [self increaseDropShots]; вызвана в функции вышевот код этой функции

-(void)increaseDropShots
{
    NSString *imgName = @"DactiveRetake";
    if (IS_IPAD) {
        imgName = [imgName stringByAppendingString:@"_ipad"];
    }
    wrongAttemp+=1;
    for (int i =1; i<=wrongAttemp; i++ ) 
    {
        UIImageView *img=(UIImageView *)[self.view viewWithTag:i+50];
        [img setImage:[UIImage imageNamed:imgName]];
    }
    NSLog(@"Question dropped counter: %d",wrongAttemp);
    if (wrongAttemp == 3)
    {
        [self shutLTTimer];
        [CommonFunctions initGlobalVars];
        [Bgplayer stop];
        [Bgplayer release];

        OverPageViewController *opvc=[[OverPageViewController alloc] initWithNibName:[CommonFunctions getXIBFile:@"OverPageViewController"] bundle:[NSBundle mainBundle]];
        [self.navigationController pushViewController:opvc animated:YES];
        [opvc release];

    }

}

В этой функции я убиваю этот таймер, но не могу.

   -(void) shutLTTimer{
    if ([tmLeftTime isValid]) {
        [tmLeftTime invalidate];
        tmLeftTime=nil;
    }

} Это весь сценарий моего приложения

Пожалуйста, помогите мне, в чем проблема.

1 Ответ

1 голос
/ 27 сентября 2011

Ответил после разговора в комментариях

Код точно попадает в строку, [tmLeftTime invalidate];?Вы можете проверить это, используя точку останова или NSLog.

...