一个简便的手段,在 iOS 应用中通过类似 cron 的分钟字符串运行计划重复的任务。
注意,只有在应用在前台运行时,计划任务才会执行。
RCRScheduledTask
已验证在 Xcode 6.1 和 iOS 8.1 上工作。
此外,RCRScheduledTask
依赖于 RCRTimers
。如果您通过 CocoaPods 安装,您将自动获取 RCRTimers
。
所有代码都使用 ARC。
首先,如果您不是通过 CocoaPods 安装,则需要从 RCRTimers
获取并将其添加到您的项目中。如果您使用 CocoaPods,此依赖将自动满足,您在这里不需要做任何事情。
接下来,将 RCRScheduledTask
文件夹和代码添加到您的项目中。
然后,从视图中快速设置计划任务的一种方法如下所示。
将 RCRScheduledTask.h
导入到您的视图中
#import "RCRScheduledTask.h"
接下来,為计划任务添加一个属性
@property (nonatomic, strong) RCRScheduledTask *scheduledTask;
然后,在您的 viewDidLoad
方法中,初始化计划任务,传入一个计划字符串以及根据计划调用的代码块。例如
self.scheduledTask = [RCRScheduledTask scheduledTaskWithScheduleString:@"*" block:^{
NSLog(@"I’m a scheduled task! I run every minute");
}];
在这个例子中,我们使用了一个计划字符串 *
(表示“每分钟运行一次”)并且简单地使用 NSLog()
记录了一条信息。
以下列出了一些计划字符串的附加示例
*/5
0,5,10,15
5
(其中 0、5、10 和 15 是任意分钟数。)
更多示例计划字符串和完整文档注释可以在示例项目中找到。
一个包含多个计划任务示例以及 RCRScheduledTask
的单元测试的示例项目可以在 RCRScheduledTaskSample
文件夹中找到。
最新的 API 文档可以在 CocoaDocs 上找到:http://cocoadocs.org/docsets/RCRScheduledTask/
MIT 许可证(在仓库根目录中查看 LICENSE
)。