如果用户忘记星期日,并且如果用户在周一或周二或一个月内打开应用程序,那么如何刷新每个星期日的数据。
hashing
初期阶段,由于我的开始日期是星期四,当我跳过星期日并直接进入星期一时,它没有刷新,因此没有刷新数据。
答案 0 :(得分:0)
你只需要两个工具就可以完成这项任务:(1)生成和NSDate代表最近星期天的能力......
NSCalendar *calendar = [NSCalendar currentCalendar];
NSCalendarOptions options = NSCalendarMatchPreviousTimePreservingSmallerUnits | NSCalendarSearchBackwards;
NSDate *mostRecentSunday = [calendar nextDateAfterDate:[NSDate date] matchingUnit:NSCalendarUnitWeekday value:1 options:options];
(2)知道最后一次刷新的时间,比如......
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSDate *mostRecentRefresh = [defaults objectForKey:@"mostRecentRefresh"];
每当应用程序唤醒时,该过程是获取最近的星期日和最近的刷新日期。如果最近的星期日是较晚的日期,则进行刷新并将当前日期记录为上次刷新日期。简单地...
if (mostRecentSunday == [mostRecentSunday laterDate:mostRecentRefresh]) {
// do refresh
[defaults setObject:[NSDate date] forKey:@"mostRecentRefresh"];
}