2012-07-03 2 views
0

NSTimer을 실행하도록 다음 코드를 작성했습니다. 하지만 NSTimer 선택기가 호출되지 않습니다.NSTimer 선택기가 호출되지 않습니다

.H 파일

@interface XViewController : UIViewController { 
    NSTimer *repeatServerRequest; 
} 

@property(nonatomic, retain) NSTimer *repeatServerRequest; 

- (void)checkForMinimunOnetimePinEntry; 
- (void) initializeTimer; 
- (void)stopTimer; 

하는 .m 파일 내가 잘못 뭐하는 거지

@synthesize repeatServerRequest; 

- (void)checkForMinimunOnetimePinEntry { 
    // some code 
} 

- (void) initializeTimer { 
    repeatServerRequest = [NSTimer scheduledTimerWithTimeInterval:15.0 
            target:self 
            selector:@selector(checkForMinimunOnetimePinEntry) 
            userInfo:nil 
            repeats:YES]; 
} 

- (void)stopTimer { 
    [repeatServerRequest invalidate]; 
    [repeatServerRequest release]; 
    repeatServerRequest = nil; 

// [self.repeatServerRequest invalidate]; 
// [self.repeatServerRequest release]; 
// self.repeatServerRequest = nil; 
} 

?

또한 어느 것이 맞는지 나에게 대답하십시오. self.repeatServerRequest 또는 단순히 repeatServerRequest ?? 미리 감사드립니다.

+0

당신은 initializeTimer를 정말로 호출 했습니까? 거기에 중단 점이 있는지 확인하십시오. 두 번째 부분에서는 속성 접근 자 (속성 자체가 사용자를 위해 메모리 관리를 처리 함)를 사용하는 경우 모두 무효화 및 무효로 설정해야합니다. 만약 당신이 그렇게했다면, 맞습니다. 그러나 속성 메소드에 충실하는 것이 더 낫습니다. (물론 init과 dealloc의 바깥 쪽) – borrrden

+0

그래,이 stmt'[self initializeTimer];를 사용했습니다. –

+0

확실합니까? 타이머가 15 초로 설정되었으므로 충분히 기다리고 있습니다. 15 초 기다렸습니까? –

답변

1

문제는 속성이 아닌 클래스 필드에 타이머를 할당한다는 것입니다.

이 코드가 작동하도록하려면 repeatServerRequest = 앞에 self.을 입력하십시오.

self.repeatServerRequest을 사용하면 컴파일러에서 [self setRepeatServerRequest:...]을 호출하고 자동 반복 타이머를 유지합니다.

+0

나는 이것을 시도했지만 성공하지 못했습니다 :-(사용하지 않아도됩니다. 'NSTimer'를 트리거하는'fire' 메시지 ?? –

+0

응용 프로그램이 stmt'[self.repeatServerRequest invalidate];와'[self.repeatServerRequest release];' –

+1

에 충돌하고 있습니다. 아니요, 불을 사용할 필요가 없습니다 * scheduled * timer를 호출했기 때문에 자동으로 시작될 것입니다. 또한 반복되기 때문에 취소 할 때까지 유효하게 유지됩니다. 실행 루프에 의해 유지되기 때문에 유효합니다 (autorelease가 문제가 아님) – borrrden

0

클래스에 대한 초기화 메소드가 있습니까? 아마 당신은 코드에 넣지 않았지만 나는 물어 보는 것을 선호합니다 ...

+0

안녕하세요, 질문에 대한 내 의견을 검색 할 수 있습니까? 그것은 전화 해달라고 init가 없으므로 도움이 될 수 있습니다. –

관련 문제