如何每周或每月只调用一次函数?

时间:2011-06-29 09:14:27

标签: iphone xcode nstimer

我问自己如何每周或每月只调用一次函数? 我想过NSTimer,但只有在应用程序运行期间才有效,不是吗? 所以也许我必须保存当前时间并确定每次启动应用程序时的过去几天 或者有一个更简单的方法,就像一个简单的函数调用? ; - )

帮助表示赞赏

1 个答案:

答案 0 :(得分:4)

是的,您需要将您上次同步的日期存储在数据库/用户默认值中,然后需要从数据库/用户默认值中提取

并且需要将日期,同步日期和当前日期传递给以下函数

-(int)howManyDaysHavePast:(NSDate*)lastDate today:(NSDate*)today {
NSDate *startDate = lastDate;
NSDate *endDate = today;

NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *components = [gregorian components:NSDayCalendarUnit fromDate:startDate toDate:endDate options:0];
int days = [components day];
return days;
}

然后你需要检查已经过了多少天

if([self howManyDaysHavePast:lastSyncedDate today:[NSDate date]]>=7)
{
   [self callFunction];
}