Objective-C每月调用一次方法

时间:2012-12-08 15:47:54

标签: objective-c ios ios5

我有一个方法需要在用户第一次在一个月内运行应用程序(从后台启动或返回应用程序)时调用吗? 做这个的最好方式是什么 ? (这是一个iOs应用程序).​​..我猜这是代理人需要调用它

3 个答案:

答案 0 :(得分:5)

使用NSUserDefaults存储上次调用方法的时间,并将其与当前日期进行比较,如果是该月的第一次(或者如果没有存储的值,即第一次),则调用。呼叫成功后,请更新已保存的时间。

答案 1 :(得分:3)

最好的方法是保存调用方法的日期和时间,然后每次在应用程序启动时使用当前日期进行检查,并保存一个以查看它们是否至少相隔一个月。然后,您将保存当前日期并再次运行该方法。你是否应该在app委托中执行此操作。在应用程序完成启动选项后,您可以在第一次启动时执行此类操作:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if ([defaults objectForKey:@"Last_run_method_date"]) {
    //get new date using [NSDate date] and compare with the date saved in
    //[defaults objectForKey:@"Last_run_method_date"]  If they are more than a month apart
    //[self methodToRun];
} else {
    [defaults setBbject:[NSDate date] forKey:@"Last_run_method_date"];
}

在每月运行一次的方法中,您希望通过在方法内执行此操作来刷新运行日期:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setBbject:[NSDate date] forKey:@"Last_run_method_date"];

很抱歉,如果代码不是100%正确,我在电脑上打字。

答案 2 :(得分:0)

我会为此安排本地通知!它就像ios的cron:D

使用UILocalNotification