내 응용 프로그램에서 사용자의 사용 시간을 계산하는 가장 좋은 방법은 무엇입니까? NSUserDefaults
에 저장해도 괜찮습니까? 어떤 형식으로 저장해야합니까?응용 프로그램에서 사용자 사용 시간을 계산하고 저장하는 가장 좋은 방법
사용자가 앱을 3-4 회 재생할 수 있는지 알고 싶습니다. 매번 2 시간 동안 재생할 때마다 이전 시간에 추가 할 시간이 필요하므로 지금해야합니다. 거기 6 시간.
감사합니다.
내 응용 프로그램에서 사용자의 사용 시간을 계산하는 가장 좋은 방법은 무엇입니까? NSUserDefaults
에 저장해도 괜찮습니까? 어떤 형식으로 저장해야합니까?응용 프로그램에서 사용자 사용 시간을 계산하고 저장하는 가장 좋은 방법
사용자가 앱을 3-4 회 재생할 수 있는지 알고 싶습니다. 매번 2 시간 동안 재생할 때마다 이전 시간에 추가 할 시간이 필요하므로 지금해야합니다. 거기 6 시간.
감사합니다.
저는 실제로 NSUserDefaults를 사용하는 것이 좋습니다.
스토어 didFinishLaunching에서 앱 위임의 바르 현재 날짜 : 당신의 AppDelegate.h에
:
NSDate *startTime;
하고하는 .m에 : 이제 각
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
startTime=[NSDate date]; //stores the current time in startTime
}
사용자가 앱을 일시 중지/종료 할 때 startTime과 현재 시간의 차이를 계산하여 NSUserDefaults의 값에 추가합니다.
- (void)applicationDidEnterBackground:(UIApplication *)application {
double diff=[startTime timeIntervalSinceNow]*(-1); //timeIntervalSinceNow is negative because startTime is earlier than now
NSUserDefaults *defaults=[NSUserDefaults standardUserDefaults];
[defaults setDouble:[defaults doubleForKey:@"Time"]+diff forKey:@"openedTime"]
}
그리고 다시 didBecomeActive에 현재 날짜를 저장 : 당신은 단지부터 오픈 시간을 얻고 싶은 경우에
- (void)applicationDidBecomeActive:(UIApplication *)application {
startTime=[NSDate date];
}
그런 다음 지금
double usedTime=([startTime timeIntervalSinceNow]*(-1))+[[defaults doubleForKey:@"Time"] doubleForKey:@"Time"];
를 사용 할 때까지 사용 시간을 얻을 수 있습니다 마지막으로 사용자가 앱을 시작한 후 종료 시간을 재설정했습니다. 시작일 :
[defaults setDouble:0.0f forKey:@"openedTime"]
희망이 도움이됩니다.
있습니다! 고맙습니다,하지만 왜 응용 프로그램의 * (- 1)이 백그라운드로 들어 왔습니까? –
또한 응용 프로그램 내부에서 현재 사용 시간을 알고 싶기 때문에 그다지 좋지 않습니다. 그러나 첫 번째 재생에서는 전혀 사용할 수 없으며 응용 프로그램을 종료 할 때까지 현재 시간을 저장하지 않습니다. 아마 다른 방법이있을거야? –
어디서나 사용 시간을 얻는 방법에 대한 추가 정보를 추가했습니다. 사실, 위의 코드는 사용자가 다른 앱으로 변경할 때마다 사용 시간을 절약합니다. 이는 내 의견으로는 가장 효율적인 방법입니다. –