我想使用 dateWithTimeIntervalSinceNow: 检查应用程序上次使用以来的时间,或者我可以每 4 小时左右向我的数据库发送请求但不确定应该如何使用 dateWithTimeIntervalSinceNow 的东西?
使用它的原因是为了检查用户数据版本是否每 4/8 小时或类似的东西是最新的。如果可能的话,可能会在用户访问应用程序时检查...这将允许我执行任何可能需要执行的方法以使用户数据保持最新等。
当您第一次启动应用程序时,以及之后每次您进行数据库刷新时,存储该数据库刷新时间(例如在 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
}
}