문제

응용 프로그램에 두 개의 타이머를 설정하여 몇 초마다 반복됩니다. 타이머를 무효화 할 시간을 제외하고는 모든 것이 잘 작동합니다. 전화기가 잠겨 있으면 해당 타이머를 무효화 한 다음 휴대 전화가 잠금 해제 될 때 재현하고 싶습니다.

알림을 사용하여 타이머를 무효화/생성 할 시점을 실현하기 위해 알림을 사용합니다.

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(notify_didBecomeActive:) name:UIApplicationDidBecomeActiveNotification object:nil];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(notify_willResigneActive:) name:UIApplicationWillResignActiveNotification object:nil];

이것이 Notify_didbecomeactive 방법에 포함 된 것입니다.

clockTicker = [[NSTimer scheduledTimerWithTimeInterval: 1  
                                            target: self  
                                          selector: @selector(showActivity)  
                                          userInfo: nil  
                                           repeats: YES] retain];

alarmTicker = [[NSTimer scheduledTimerWithTimeInterval: CONST_ALARMTIMER  
                                               target: self  
                                             selector: @selector(checkAndLaunchAlarm)  
                                             userInfo: nil  
                                              repeats: YES] retain];

이것은 notify_willresigneactive 메소드에 다음을 포함합니다.

if (alarmTicker) {
    [alarmTicker invalidate];
    [alarmTicker release];
    alarmTicker = NULL;
}

if (clockTicker) {
    [clockTicker invalidate];
    [clockTicker release];
    clockTicker = NULL;
}

문제는 두 번째 타이머를 무효화 할 때 이것을 디버깅 할 때 오류가 발생한다는 것입니다. 이상한 점은 타이머의 순서를 전환하면 (첫 번째 클럭 팅커를 무효화하는 것처럼) 두 번째 타이머에 오류가 여전히 발생한다는 것입니다.

내가 무엇을 잘못 할 수 있습니까?

고마워, 레오나르도

도움이 되었습니까?

해결책

무효화는 타이머를 방출하고 무효화 후 해제 할 필요가 없습니다. 그러나 나는 당신이 타이머를 유지하고 있다는 것을 알았습니다 ... 이것이 필요하다는 것을 확신하지 못합니다.

다른 팁

당신은 그 타이머가 발사되는 메소드 내부에서 알람 틱과 클럭 턴을 설정하면 (알람 틱) 또는 (clockticker)를 확인할 때 그 방법이 올바른 값을 갖습니다.

타이머를 NUL로 설정하는 것이 무엇인지 잘 모르겠지만, NIL로 설정하는 것과는 반대로, NIL 객체를 호출하면 NO-OP라는 것을 알고 있습니다. 당신이 널 객체를 호출한다면, 나는 이것을 확인하지는 않았지만 충돌한다고 생각합니다. 이 게시물이 도움이 될 수 있습니다. 객체 c에서 null vs nil

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top