1

我一直在研究launchd 和launchctl,但看不到前者是如何用于一次性任务的。

假设这个应用程序的用户为将来要运行的任务输入了一些详细信息。(他们可以在不同的时间添加几个。)如果使用已启动,我假设该应用程序将创建并保存一个 plist,然后加载它。plist 的 ProgramArguments 可以包含任务的特定详细信息(可能会因将来的运行而改变)。该应用程序每次都需要加载一个吗?该应用程序是否需要清理(删除)已完成的 plist?

日历似乎是另一种选择,但是使用警报 > 打开程序功能似乎有问题。

还有其他选择吗?可可内置的东西可能吗?

非常感谢所有想法。

4

1 回答 1

2

似乎有多种方法可以完成这个“稍后做”的任务。我的目标是使用 Objective-C 和 Cocoa 作为解决方案。最初,我担心以某种方式“阻塞”主线程。事实证明这NSTimer是问题的一个答案。我最终使用:

NSTimer *timer = [[NSTimer alloc] initWithFireDate:date
                                          interval:0.1
                                            target:self
                                          selector:@selector(startSomeMethod:)
                                          userInfo:info
                                           repeats:NO];

稍后“解雇”一项任务。

于 2013-08-27T14:31:24.180 回答