我可以在应用程序运行时以编程方式翻转Info.plist值吗?

时间:2009-09-15 22:09:36

标签: iphone reachability info.plist

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

5 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:3)

我知道您可以通过NSBundle将您的info.plist作为NSDictionary获取以下内容:

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

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

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

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