1

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

4

3 回答 3

5

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

于 2012-12-08T15:51:38.697 回答
3

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

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% 正确,我正在电脑上打字。

于 2012-12-08T15:51:13.127 回答
0

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

采用UILocalNotification

于 2012-12-08T16:11:51.600 回答