如何在越狱iOS上创建与守护进程通信的应用程序GUI?

时间:2012-11-24 18:44:53

标签: iphone objective-c ios xcode jailbreak

我正在为越狱的iOS编写一个守护进程,我想使用GUI为它设置某些设置。是否可以为守护进程设置GUI?如果没有,我如何编写可以与守护进程通信的应用程序,以便通过应用程序控制守护进程?

1 个答案:

答案 0 :(得分:7)

是的,你可以这样做。我有多个应用程序,包含一个普通UIApplication,然后是一个始终运行的后台启动守护程序

这取决于您希望在两者之间传达什么样的信息。我使用的一种模式(还有许多其他方式)是拥有共享首选项文件。我可以将此文件存储在/var/mobile/Library/MyAppName/user_preferences.plist中。启动守护程序将读取此文件,UI可以编写它。

当用户通过用户界面更改某些设置时,您的用户界面可以在writeToFile:atomically:中使用NSDictionary写出plist文件。然后它需要告诉守护进程是时候重新读取首选项文件了。您可以通过通知执行此操作。在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方法随后可以使用dictionaryWithContentsOfFile:读取plist文件。

如果我以后有更多时间,我会尝试添加更多描述(和代码)。