0

dateWithTimeIntervalSinceNow: を使用して、アプリが最後に使用されてからの時間を確認したり、4 時間ごとに DB にリクエストを送信できるような効果を確認したりしたいのですが、dateWithTimeIntervalSinceNow をどのように使用すればよいかわかりません。

これを使用する理由は、ユーザーのデータ バージョンが 4/8 時間ごと、またはそれらの線に沿って最新であるかどうかを確認するためです。可能であれば、ユーザーがアプリにアクセスするたびに確認することができます...ユーザーデータを最新の状態にするために実行する必要がある可能性のあるメソッドを実行します。

4

1 に答える 1

0

アプリを初めて起動したとき、およびその後データベースの更新を行うたびに、そのデータベースの更新時刻を保存します (たとえば、NSUserDefaults に)。

[[NSUserDefaults standardUserDefaults] setObject:[NSDate date] forKey:@"LastDatabaseRefreshTime"];

次に、アプリがアクティブになるたびに、データベースが最後に更新されてから 4 時間以上経過しているかどうかを確認します。だからあなたの

- (void)applicationDidBecomeActive:(UIApplication *)application {
    NSDate *dbRefreshDate = [[NSUserDefaults standardUserDefaults] objectForKey:@"LastDatabaseRefreshTime"];
    dbRefreshDatePlus4hrs = [NSDate dateWithTimeInterval:(4*60*60) sinceDate:dbRefreshDate];

    NSDate *nowTime = [NSDate date];
    if ([dbRefreshDatePlus4hrs compare:nowTime] == NSOrderedAscending) {
          // Its more than 4 hours since the last refresh so
          // add code to call for another database refresh here
    }
}
于 2012-09-17T06:54:57.127 に答える