2011-06-13 3 views
0

iOS SDK 및 Objective-C에 새로운 기능이 추가되었으며 NSTimeInterval과 관련된 빠른 질문이 있습니다.지속적으로 NSTimeInterval을 표시합니다.

나는 아주 간단한 게임을 가지고 있으며 게임을 얼마나 오래 연주했는지 보여주고 싶다. 그래서 나는 최고의 시간을 절약 할 수있다.

자, 물론 나는 이런 식으로 뭔가와 레이블의 텍스트를 설정 한 경우 :

NSTimeInterval elapsedTime = [startDate timeIntervalSinceNow]; 
theLabel.text = [NSString stringWithFormat:@"%.2f", -elapsedTime]; 

라벨의 텍스트는 게임 0 초, 이는 시작한 이후 통과 얼마나 오랜 시간이 될 것입니다.

"배경에서 실행 중"이라는 elapsedTime 개체를 사용하여 모든 시간 동안 연주 한 시간을 플레이어가 확인할 수 있도록하려면 어떻게해야합니까?

답변

1

미리 설정된 시간 동안 타이머를 예약하고 콜백에서 라벨을 업데이트하려면 NSTimer 클래스를 살펴보십시오.

-(void)viewDidLoad { 
    [super viewDidLoad]; 

    // Add timer at 60 frames a second 
    timer = [NSTimer scheduledTimerWithInterval:1.0/60.0 target:self selector:@selector(targetMethod:) userInfo:nil repeats: YES]; 
} 

-(void) targetMethod: NSTimer * theTimer { 
... update label 
} 
+0

그래서 60fps에서 레이블을 업데이트하는 타이머를 설정해야합니까? 그것이 작동 할 것 같은데 들리지만, 항상 그런 식으로 작업을 실행하는 것은 불필요하지 않습니까? 잠시 후 사용하겠습니다. 다른 사람이 할 말이 있으십니까? =) – Marcus

+0

실시간 업데이트를 원한다면 많은 선택 사항이 없습니까?! 그러나 통계 페이지로 갈 때마다 정적 값을 원한다면 NSUserDefaults에 값을 추가하고 사용자가 게임을 시작/종료 할 때마다 값을 업데이트하십시오. –

+0

나는 그것을 얻는다 - 너의 노력을 위해 대단히 고맙다; 매력처럼 작동하는 것 같다 =) – Marcus

관련 문제