我有兴趣在我的应用程序中使用SBUsesNetwork
和UIRequiresPersistentWiFi
键;但是,我想只在使用某组视图控制器时启用它们。有没有办法在应用程序运行时以编程方式翻转这些键值?
答案 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只不过是一本字典。因此可以编辑。