gpt4 book ai didi

iphone - 如何在越狱后的iPhone中创建SpringBoard或其他应用程序可以访问的全局环境变量?

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:46:17 26 4
gpt4 key购买 nike

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

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

有人知道怎么做吗?

最佳答案

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

  1. Darwin 通知中心CFNotificationCenterGetDarwinNotifyCenter
  2. 分布式通知中心 CFNotificationCenterGetDistributedCenter - 私有(private) API

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

这里是CFNotificationCenterGetDistributedCenter原型(prototype)

CFNotificationCenterRef CFNotificationCenterGetDistributedCenter();

更新:

此功能在iOS 5.0及以上版本可用。如果您需要支持旧版本,有两种解决方案:

  1. Darwin 通知中心
  2. CFMessagePort - 可以传输任意数据。

如果您真的需要支持旧版本,我建议您使用 CFMessagePort。它是简单灵活的解决方案,有据可查。如果您遇到问题,您总能找到有效的示例。

关于iphone - 如何在越狱后的iPhone中创建SpringBoard或其他应用程序可以访问的全局环境变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17768901/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com