Iphone 如何在目标C中规划重复性任务?(例如,每15分钟增加一次寿命)

Iphone 如何在目标C中规划重复性任务?(例如,每15分钟增加一次寿命),iphone,objective-c,xcode,ios4,Iphone,Objective C,Xcode,Ios4,我想知道在iPhone应用程序中增加资源的最佳实践是什么(无论它是在前台运行还是在后台冻结/运行)。我试图完成的壮举基本上是每15分钟增加一些硬币,无论应用程序是在前台还是后台。您可以通过查找第一次和最后一次发布之间的时差(根据您的要求),然后根据时差增加硬币数量来实现这一点 查找两个日期之间的时间间隔 NSTimeInterval noOfSeconds = [date timeIntervalSinceDate:date2]; noOfSeconds/900//this will giv

我想知道在iPhone应用程序中增加资源的最佳实践是什么(无论它是在前台运行还是在后台冻结/运行)。我试图完成的壮举基本上是每15分钟增加一些硬币,无论应用程序是在前台还是后台。

您可以通过查找第一次和最后一次发布之间的时差(根据您的要求),然后根据时差增加硬币数量来实现这一点 查找两个日期之间的时间间隔

 NSTimeInterval noOfSeconds = [date timeIntervalSinceDate:date2];
noOfSeconds/900//this will give the number of 15 minutes elapsed
//寻找两个日期之间的差异

 NSTimeInterval noOfSeconds = [date timeIntervalSinceDate:date2];
noOfSeconds/900//this will give the number of 15 minutes elapsed

这取决于你想做什么,但可能你不需要在后台做。只需存储用户上次检查硬币数量时的时间戳,并通过一些数学运算,在下次检查时计算当前硬币。

您可以这样做:

NSTimer *timer;
timer= [NSTimer timerWithTimeInterval:15*60 //seconds
                                    target:self
                                    selector:@selector(yourMethod)
                                    userInfo:nil
                                    repeats:YES];
这是每15分钟调用
yourMethod
,您可以在那里完成自己的工作

除上述内容外,请参阅:


当应用程序运行时,您可以使用
NSTimer
实现这一点。但是,当你的应用程序在后台时,计时器不会启动


使用AppDelegate的
ApplicationIdentinterBackground
applicationWillEnterForeground
方法检测应用程序何时进入/退出后台状态-根据当前时间增加硬币计数。

谢谢,但这仅在应用程序在前台运行时起作用,是吗?+1虽然我也对科林的答案投了赞成票,但我认为这更好。这样,您只需要定时器来强制显示刷新。