Einstellungen für Bündel mit mehreren Werten geben immer Null zurück

7

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.

    
mlewis54 24.01.2011, 16:08
quelle

2 Antworten

21

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.

%Vor%     
Matthias Bauch 24.01.2011, 16:57
quelle
1

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:

  • Lesen Sie den Wert für einen bestimmten Schlüssel
  • Wenn der Schlüssel nicht existiert, legen Sie einen Standardwert fest und geben Sie diesen Standard
  • zurück

So kann ich das tun:

%Vor%

Dies ist die Erweiterung:

%Vor%     
Besi 29.05.2015 10:48
quelle