如何创build一个可被SpringBoard或越狱iPhone中的其他应用程序访问的全局环境variables?
我发现在SpringBoard中创build的variables不能被其他常规应用程序访问。 但是现在我想制作一个可以在全球环境中高效共享状态的标志variables。
我认为在某个path创build的文件可以做到这一点,但可能不够快。
有人知道怎么做这个吗?
您可以尝试将文件与此文件中的更改通知结合使用。 进程之间的通知可以通过两种方式发送:
- 达尔文通知中心
CFNotificationCenterGetDarwinNotifyCenter
- 分布式通知中心
CFNotificationCenterGetDistributedCenter
– 私有API
分布式通知中心更好,因为您可以发送带有附加数据的通知。 达尔文通知中心忽略传递给它的所有用户信息。 所以当你改变一些标志并将其保存在一个文件中时,你可以用这个标志的新值发送通知。 你甚至不需要打开文件并自己获得标志的值。 所有其他应用程序只需要听这个通知。
这里是CFNotificationCenterGetDistributedCenter
原型
CFNotificationCenterRef CFNotificationCenterGetDistributedCenter();
更新:
此function在iOS 5.0及以上版本中可用。 如果您需要支持旧版本,则有两种解决scheme:
- 达尔文通知中心
- CFMessagePort – 可以传输任意数据。
如果你真的需要支持旧版本,我build议你使用CFMessagePort。 这是简单而灵活的解决scheme,有据可查。 如果你遇到麻烦,你总是可以find工作的例子。
您可以将您的var存储在keyChain中,并使所有想要在一个访问组中共享的应用程序。 希望它有帮助。