1

私はlaunchdとlaunchctlを調べてきましたが、前者が1回限りのタスクをどのように意図しているかわかりません。

このアプリのユーザーが、将来実行するタスクの詳細を入力するとします。(異なる時間にいくつか追加することができます。)launch を使用する場合、アプリは plist を作成して保存し、それをロードすると想定します。plist の ProgramArguments には、タスクの特定の詳細を含めることができます (将来の実行で変更される可能性があります)。アプリは毎回 1 つをロードする必要がありますか? アプリは完成した plist をクリーンアップ (削除) する必要がありますか?

カレンダーは代替手段のようですが、アラート>プログラムを開く機能を使用すると問題が発生するようです.

別の代替手段はありますか?おそらくココアに何かが組み込まれていますか?

すべてのアイデアは大歓迎です。

4

1 に答える 1

2

この「do-later」タスクを達成するには複数の方法があるようです。私の目標は、Objective-C と Cocoa をソリューションとして使用することでした。最初は、何らかの方法でメインスレッドを「ブロック」することを心配していました。質問に対する1つの答えであることがわかりました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 に答える