アプリケーションでキーSBUsesNetwork
とキーを使用することに興味があります。UIRequiresPersistentWiFi
ただし、特定のビューコントローラのセットを使用する場合にのみ有効にします。アプリケーションの実行中にこれらのキー値をプログラムで反転する方法はありますか?
5 に答える
実行中にバンドルの内容を変更することはできません。そのディレクトリへの書き込みアクセス権がありません。あなたがやりたいことを正確に行う方法があるかどうかはわかりません。
次の方法でNSBundleを介してinfo.plistをNSDictionaryとして取得できることを知っています。
NSDictionary* infoDictionary = [[NSBundle mainBundle] infoDictionary];
そこから、を作成して値を設定できmutableCopy
ますNSDictionary
。キーにクエリを実行するときは、info.plistファイルではなく、をクエリする必要がありますNSDictionary
が、両方の問題を処理するクラスにこれらすべてをカプセル化するのは難しいことではありません。
アプリのinfo.plistファイルを直接変更する場合、問題が発生する可能性があります(たとえば、ファイルを変更すると、コード署名が失敗し、アプリが破損していると見なされます)。
これはうまくいかないと思います。[NSBundle mainBundle]には、特定のinfoDictionaryへのポインターがあります。変更可能なコピーを取得しても、NSBundleは新しいplistについて何も知りません。誰かまだ試しましたか?
Info.plistを変更することはできません。あなたが求めていることを行うためのApple認可の方法はないようです。
Info.plistは辞書に他なりません。したがって、編集することができます。