Ich habe ein Problem, beim ersten Start einer App Standardwerte aus dem Bundle der Einstellungen abzurufen. Alle nicht mehrwertigen Felder geben den Standard korrekt zurück. Alle mehrwertigen Felder geben NULL zurück. Der Code, den ich verwende, um den aktuellen Wert abzurufen:
%Vor%Der relevante Abschnitt von Root.plist ist:
%Vor%Ich würde erwarten, dass "15" als aktueller Wert zurückkommt, da es auf den Standardwert gesetzt ist. Ist für mehrwertige Felder eine unterschiedliche Verarbeitung erforderlich? Wie ich bereits sagte, gibt es 6 Felder davor, die ihre Werte korrekt zurückgeben. Dieses Feld und die folgenden 2 mehrwertigen Felder nicht. Die mehrwertigen Felder sind alle gleich definiert.
Wenn der Wert in der Einstellungs-App nicht vom Benutzer geändert wurde, gibt es keine Einstellung. Der im Konfigurationspaket angegebene Standardwert ist nur der Standardwert für die Anzeige in der Einstellungs-App
Sie müssen Ihre Standardwerte manuell registrieren. NSUserdefaults verwendet nicht die Standardwerte aus dem Settings-Paket.
Verwenden Sie so etwas, fügen Sie es am Anfang Ihrer App hinzu (bevor Sie auf die Benutzerdefaults zugreifen).
Registrierte Benutzerdefaults werden nicht auf der Festplatte oder anderem gespeichert. Sie müssen sie bei jedem Start der App registrieren.
Ich bin gerade auf dieses Problem gestoßen und frage mich, warum das Settings-Paket einen Standardwert bietet, wenn dieser Wert nie aus dem NSUserDefaults
gelesen werden kann.
Ich habe eine schnelle Erweiterung erstellt, die Folgendes bewirkt:
So kann ich das tun:
%Vor%Dies ist die Erweiterung:
%Vor%Tags und Links iphone web-applications settings.bundle