2012-11-01 3 views
0

내 게임에서 특정 시간 동안 게임 센터 업적을 달성하고 싶습니다. 그러나 사용자의 재생 시간을 기록하는 방법을 알지 못합니다. 나는 applicationWillTerminate까지 활성 인 applicationDidFinishLaunchingWithOptions:에서 생성 된 싱글 톤 클래스를 가질 수 있고, applicationWillTerminate에서 duration을 NSUserDefaults으로 저장한다고 생각했지만, 실제로 이렇게하는 것이 가장 좋은 방법일까요?앱 세션 기간을 기록하는 방법은 무엇입니까?

답변

1

-(void)applicationWillResignActive:(UIApplication *)application-(void)applicationWillEnterForeground:(UIApplication *)application을 사용하여 측정을 시작하고 중지 할 수 있습니다.

실제 게임 시간을 측정하려면 실제 게임 시작시 측정 시작과 같은 더 복잡한 논리를 구현하고 "게임 오버"및 "일시 중지"이벤트에서 중지해야합니다. 그런 다음 -(void)applicationWillEnterForeground:(UIApplication *)application을 사용하여 "일시 중지"를 자동으로 트리거 할 수 있습니다 ("일시 중지"이벤트이기 때문에 측정을 중지합니다).

+0

도움이되었지만 실제로 타이밍 부분을 구현하는 방법은 무엇입니까? – pasawaya

+0

한 가지 방법은 다음과 같은 코드로 시작하여 현재 날짜와 시간을 얻는 것입니다. NSDate * startDate = [NSDate date]; 정지 시간에 NSTimeInterval과 같은 것을 호출합니다. ti = [[NSDate date] timeIntervalSinceDate : startDate]; 재생 시간은 초 단위입니다. 내가 생각하는 다른 방법이있을 수 있습니다. – demosten

+0

좋은 소리. 감사! – pasawaya