如何创build一个可被SpringBoard或越狱iPhone中的其他应用程序访问的全局环境variables?

我发现在SpringBoard中创build的variables不能被其他常规应用程序访问。 但是现在我想制作一个可以在全球环境中高效共享状态的标志variables。

我认为在某个path创build的文件可以做到这一点,但可能不够快。

有人知道怎么做这个吗?

您可以尝试将文件与此文件中的更改通知结合使用。 进程之间的通知可以通过两种方式发送:

  1. 达尔文通知中心CFNotificationCenterGetDarwinNotifyCenter
  2. 分布式通知中心CFNotificationCenterGetDistributedCenter – 私有API

分布式通知中心更好,因为您可以发送带有附加数据的通知。 达尔文通知中心忽略传递给它的所有用户信息。 所以当你改变一些标志并将其保存在一个文件中时,你可以用这个标志的新值发送通知。 你甚至不需要打开文件并自己获得标志的值。 所有其他应用程序只需要听这个通知。

这里是CFNotificationCenterGetDistributedCenter原型

 CFNotificationCenterRef CFNotificationCenterGetDistributedCenter(); 

更新:

此function在iOS 5.0及以上版本中可用。 如果您需要支持旧版本,则有两种解决scheme:

  1. 达尔文通知中心
  2. CFMessagePort – 可以传输任意数据。

如果你真的需要支持旧版本,我build议你使用CFMessagePort。 这是简单而灵活的解决scheme,有据可查。 如果你遇到麻烦,你总是可以find工作的例子。

您可以将您的var存储在keyChain中,并使所有想要在一个访问组中共享的应用程序。 希望它有帮助。