2016-07-31 2 views
0

을 클릭 정지 버튼을 작동하지 무효화하지만 난 정지 버튼을 클릭하면 덜 지연 다시 발사된다.NSTimer 내가 정지 버튼의 클릭에 타이머를 중지 할 수 없습니다입니다

이 내 ViewController.h 파일입니다

#import <UIKit/UIKit.h> 
@interface ViewController : UIViewController 
{ 
    NSTimer *timer; 
} 

- (IBAction)startTimer:(id)sender; 
- (IBAction)stopTimer:(id)sender; 
@end 

와 ViewController.m 파일 :

@interface ViewController() 

@end 

@implementation ViewController 

- (void)viewDidLoad { 
    [super viewDidLoad]; 
} 

- (void)didReceiveMemoryWarning { 
    [super didReceiveMemoryWarning]; 
} 

- (IBAction)startTimer:(id)sender { 
    timer=[NSTimer scheduledTimerWithTimeInterval:1.0 target:self  selector:@selector(timerFired) userInfo:nil repeats:YES]; 
} 

-(void) timerFired{ 
    NSLog(@"Timer Fired"); 
} 

- (IBAction)stopTimer:(id)sender { 
    [timer invalidate]; 
} 
@end 

감사합니다.

+1

'stopTimer'에 버튼 동작을 올바르게 연결 했습니까? 'stopTimer'가 호출되고 있습니까? 그것은 귀하의 중지 버튼을 다시 startTimer' 전화 수 있습니다처럼 – Paulw11

+0

네, 맞아 내가 실수로 타이머를 시작하고 타이머 방법을 중지 타이머 버튼을 모두 연결되어있다 그래서 나는 그 도움을 주셔서 감사합니다 해결했습니다. –

답변

0

추가 : 실제로 호출되는

- (IBAction)stopTimer:(id)sender { 
    [timer invalidate]; 
    timer = nil; 
} 
+0

이것은 좋은 생각입니다. 또한 startTimer가 stopTimer를 먼저 호출하도록하십시오. 새 타이머를 시작하기 전에 –

+0

나는 실수로 타이머를 시작하고 타이머 방법을 중지하기 위해 타이머 버튼을 모두 연결 했으므로 해결할 수 있도록 도움을 청했습니다. –

0

확인 stopTimer있다. 설명에서 두 버튼을 모두 startTimer에 연결 한 것처럼 들립니다.

타이머를 중지 할 때 타이머를 nil으로 설정 한 다음 startTimer을 체크하여 타이머가 이미 실행 중인지 확인할 수 있습니다.