0

我想使用 dateWithTimeIntervalSinceNow: 检查应用程序上次使用以来的时间,或者我可以每 4 小时左右向我的数据库发送请求但不确定应该如何使用 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 回答