我一直在研究launchd和launchctl,但是看不到前者是如何用于一次性任务的。
假设此应用程序的用户输入了将来要运行的任务的一些详细信息。 (他们可以在不同的时间添加几个。)如果使用启动,我假设应用程序将创建并保存一个plist然后加载它。 plist的ProgramArguments可以包含任务的具体细节(可能会在将来的运行中发生变化)。该应用程序需要每次加载一个?应用程序是否需要清理(删除)已完成的plist?
日历似乎是另一种选择,但是使用警报>开放式程序功能似乎有问题。
还有另一种选择吗? Cocoa内置的东西可能吗?
所有想法都非常感激。
答案 0 :(得分:2)
似乎有多种方法可以完成这个“后做”任务。我的目标是使用Objective-C和Cocoa作为解决方案。最初,我担心以某种方式'阻塞'主线程。事实证明NSTimer
是 一个 问题的答案。我最终使用了:
NSTimer *timer = [[NSTimer alloc] initWithFireDate:date
interval:0.1
target:self
selector:@selector(startSomeMethod:)
userInfo:info
repeats:NO];
稍后“解雇”任务。