編集:質問を誤解しました。これが可能な代替手段です。
- (void)applicationDidEnterBackground:(UIApplication *)アプリケーション{
UIApplication* app = [UIApplication sharedApplication];
task = [app beginBackgroundTaskWithExpirationHandler:^{
[app endBackgroundTask:タスク];
タスク = UIBackgroundTaskInvalid;
}];
// 長時間実行タスクを開始し、すぐに戻ります。
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
// タスクに関連付けられた作業を行います。
NSLog(@"Started background task timeremaining = %f", [app backgroundTimeRemaining]);
// NSUserdefaults の時間を節約
[[NSUserdefaults standardUserDefaults] setObject:[NSDate 日付] objectForKey@"startDate"];
[app endBackgroundTask:タスク];
タスク = UIBackgroundTaskInvalid;
});
}
- (void)applicationWillTerminate:(UIApplication *)アプリケーション{
[[NSUserdefaults standardUserDefaults] setObject:[NSDate 日付] objectForKey@"terminateDate"];
}
-(void)applicationDidFinishLaunching:(UIApplication)application{
// 開始時刻を取得して終了時刻を取得し、差分を取る
NSDate* temporaryDate1 = (NSDate*)[userDefaults objectForKey:@"startDate"];
NSDate* temporaryDate2 = (NSDate*)[userDefaults objectForKey:@"terminateDate"];
比較[一時的な日付1、一時的な日付2];
}
これは、NSDate インスタンスを比較する方法を確認するためのリンクです。