2010-12-10 13 views
0

여기 멍청한 놈.NSTimer를 사용하여 응용 프로그램 종료

일부 루핑 사운드를 재생하는 앱을 개발 중입니다. 타이머를 사용하여 일정 시간이 지나면 앱을 종료 할 수있는 권한을 사용자에게 부여하고 싶습니다. 아이디어는 사용자가 버튼을 누르면 타이머가 다 소모되면 앱이 종료됩니다.

버튼을 누르면 순간적으로 앱이 다운됩니다.

여기에 지금까지 가지고있는 작업은 다음과 같습니다

- (IBAction)timer:(id)sender{ 

    timer = [NSTimer scheduledTimerWithInterval: 10.0 target:self selector:@selector(targetMethod:) userInfo:nil repeats: YES]; 

} 


-(void) targetMethod: (NSTimer*) theTimer { 
    NSLog(@"timer?"); 
    exit(0); 

} 
+0

귀하의 코드가 타이머가 내가 생각 속성을 유지 가정하고, 합리적인 보인다? 다음으로해야할 일은 NSLog 메시지를 [timer scheduledTimer ...] 호출 전후에 넣고 targetMethod에 다른 NSLog를 넣는 것입니다. – MahatmaManic

+0

다른 하나는 헤더에 IBAction을 선언 할 때 당신이 그것을 .m- (IBAction) 타이머 : (id) 보낸 사람에게 선언하는 것과 똑같이 선언하고 xib에서 올바르게 유선화된 것입니다. "인식 할 수없는 선택기"와 같은 충돌이 발생하거나 로그 메시지가 표시되지 않는 경우 제대로 연결하지 않은 것입니다. – MahatmaManic

+2

Apple은 고의적으로 종료되는 앱을 승인하지 않습니다. 앱 스토어가 출판을위한 길일 것으로 기대하지 마세요. – Tommy

답변

1

당신은 제대로 타이머 참조를 정의해야

NSTimer *timer = [NSTimer scheduledTimerWithInterval: 10.0 target:self selector:@selector(targetMethod:) userInfo:nil repeats: YES]; 
+0

@jsumners는 타이머 선언의 시작 부분에 'NSTimer *'가 없습니다. 형식을 지정해야하며 포인터임을 지정해야합니다. –

+0

답장을 보내 주셔서 감사합니다. 아마 내가 헤더 파일에 선언 된 타이머를 추가해야합니다 : NSTimer * timer; 모든 제안 사항이 코드에 있는지 확인하기 위해 코드를 점검 할 것입니다. – redned

+0

해결되었습니다! 나는 NSTimer * timer = [NSTimer scheduledTimerWithInterval : 10.0 target : 셀렉터 : @selector (targetMethod :) userInfo : nil repeats : YES];를 가졌다. 대신에 NSTimer * timer = [NSTimer scheduledTimerWithTimeInterval : 10.0 target : 셀렉터 : @selector (targetMethod :) userInfo : nil repeats : YES]; 나는 간격 이전에 시간을 버렸다. 답장을 보내 주신 모든 분들께 감사드립니다. – redned

관련 문제