1

ジェイルブレイクされたiOS用のデーモンを作成していますが、GUIを使用して特定の設定を行いたいと考えています。デーモン用のGUIを持つことは可能ですか?そうでない場合、デーモンと通信できるアプリを作成して、アプリを介してデーモンを制御できるようにするにはどうすればよいですか?

4

1 に答える 1

7

はい、あなたはこれを行うことができます。UIApplication1つの通常のアプリと、常に実行されるバックグラウンドのLaunchDaemonで構成される複数のアプリがあります。

それはあなたが2人の間でどのような種類の情報を伝えたいかによります。私が使用したパターンの1つ(他にも多くの方法があります)は、共有設定ファイルを使用することです。このファイルをに保存する場合があります/var/mobile/Library/MyAppName/user_preferences.plist。起動デーモンがこのファイルを読み取り、UIがそれを書き込むことができます。

writeToFile:atomically:ユーザーがUIを介して一部の設定を変更すると、UIはでplistファイルを書き出すことができますNSDictionary。次に、設定ファイルを再度読み取る時間であることをデーモンに通知する必要があります。あなたは通知でこれを行うことができます。UIアプリの場合:

#import <notify.h>

notify_post("com.mycompany.settings_changed");

com.mycompany.settings_changed次に、デーモンで、通知が投稿され たときにiOSによって呼び出されるコールバックメソッドまたはブロックを登録します。

int status = notify_register_dispatch("com.mycompany.settings_changed",
                                      &notifyToken,
                                      dispatch_get_main_queue(), ^(int t) {
                                          NSLog(@"settings notification received");
                                          [self loadSettings];
                                      });

デーモンのloadSettingsメソッドは、を使用してplistファイルを読み取ることができますdictionaryWithContentsOfFile:

後で時間があれば、説明(およびコード)を追加してみます。

于 2012-11-25T00:51:52.740 に答える