Kann ich Flip programmatisch Info.plist Werte, während meine Anwendung ausgeführt wird?
-
07-07-2019 - |
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?
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.