我有兴趣在我的应用程序中使用 SBUsesNetwork UIRequiresPersistentWiFi 键;但是,我想只在使用某组视图控制器时启用它们。有没有办法在应用程序运行时以编程方式翻转这些键值?

有帮助吗?

解决方案

您无法在运行时修改捆绑包内容,但您没有该目录的写入权限。我不确定是否有办法完全按照自己的意愿行事。

其他提示

我知道您可以通过 NSBundle ,内容如下:

NSDictionary* infoDictionary = [[NSBundle mainBundle] infoDictionary];

从那里你可以创建 NSDictionary mutableCopy 并在其中设置值。在对密钥进行查询时,您必须确保查询 NSDictionary 而不是info.plist文件,但将所有这些都封装到一个处理两者的类中并不难。你的问题。

至于直接修改应用程序的info.plist文件可能存在问题(例如,如果您修改文件,代码签名将失败,您的应用程序将被视为已损坏),但我不确定。

您无法修改Info.plist。似乎没有苹果认可的方式来做你想做的事。

我不认为这会奏效。 [NSBundle mainBundle]有一个指向特定infoDictionary的指针。即使您采用可变副本,NSBundle也不会对我们的新plist有任何了解。还有人试过吗?

Info.plist只不过是一本字典。因此可以编辑。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top