Frage

Ich bin daran interessiert, die SBUsesNetwork und UIRequiresPersistentWiFi Schlüssel in meiner Anwendung bei der Verwendung; jedoch würde Ich mag sie nur aktivieren, wenn eine bestimmte Menge von View-Controller verwenden. Gibt es eine Möglichkeit programmatisch diese Schlüsselwerte zu kippen, während die Anwendung ausgeführt wird?

War es hilfreich?

Lösung

Sie können Ihren Bündel Inhalt nicht ändern, während ausgeführt wird, Sie haben keinen Schreibzugriff auf dieses Verzeichnis. Ich bin nicht sicher, ob es eine Möglichkeit gibt, genau zu tun, was Sie wollen.

Andere Tipps

Ich weiß, dass Sie Ihre info.plist als NSDictionary über NSBundle mit dem folgenden:

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

Von dort aus können Sie einen mutableCopy der NSDictionary machen und die Werte darin festgelegt. Bei Anfragen an die Schlüssel werden Sie müssen die NSDictionary und nicht Ihre info.plist Datei abzufragen stellen Sie sicher, aber es sollte nicht schwer sein, dies alles in eine Klasse zu kapseln, die für Sie beide Probleme behandelt.

Wie für Ihre App info.plist Datei direkt dort modifizieren könnte Probleme da sein (zB wenn Sie die Datei Unterzeichnung der Code ändern wird scheitern und Ihre App wird korrupt angesehen werden), obwohl ich auf diese nicht sicher bin.

Sie können nicht den Info.plist ändern. Es scheint nicht ein Apple sanktioniert Weg von zu sein, zu tun, was Sie nach.

Ich glaube nicht, das wird funktionieren. [NSBundle main] hat einen Zeiger auf einen spezifischen infoDictionary. Auch wenn Sie eine änderbare Kopie nehmen, würde NSBundle nichts über unseren neuen plist wissen. Jeder versucht noch?

Info.plist ist nichts anderes als ein Wörterbuch. Daher kann es bearbeitet werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top