如何刷新每个星期天的数据

时间:2016-12-29 14:15:09

标签: ios objective-c nsdate

如果用户忘记星期日,并且如果用户在周一或周二或一个月内打开应用程序,那么如何刷新每个星期日的数据。

hashing

初期阶段,由于我的开始日期是星期四,当我跳过星期日并直接进入星期一时,它没有刷新,因此没有刷新数据。

1 个答案:

答案 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"];
}