使用dateWithTimeIntervalSinceNow执行方法:

时间:2012-09-17 01:38:43

标签: iphone ios nsdate

我想使用dateWithTimeIntervalSinceNow:检查应用程序上次使用的时间长度,或者我可以每隔4小时左右向我的数据库发送请求的内容,但不确定应该如何使用dateWithTimeIntervalSinceNow?< / p>

使用它的原因是为了检查用户数据版本是否每4/8小时是最新的或者沿着这些行的某些东西..可能在用户访问应用程序时检查是否可能...这将允许我执行任何可能需要执行的方法,以使用户数据更新等。

1 个答案:

答案 0 :(得分: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
    }
}