Frage

Die NSUserDefaults API-Dokumentation hat die boolForKey: Nachricht, die wie folgt beschrieben wird -

boolForKey:

Gibt den Booleschen Wert mit dem angegebenen Schlüssel zugeordnet ist.

- (BOOL)boolForKey:(NSString *)defaultName

Rückgabewert Wenn ein boolescher Wert mit Default in den Anwendervorgaben verbunden ist, wird dieser Wert zurückgegeben. Andernfalls wird NO zurückgegeben.

Da ein [[NSUserDefaults standardUserDefaults] boolForKey:@"some_Key"] ein NO zurück gibt es entweder sein kann, weil der Schlüssel nicht vorhanden ist oder der Schlüssel vorhanden ist und hat einen Wert boolean NO. Wie können wir unterscheiden? Ab jetzt kann ich nur vermeiden, in erster Linie in diese Situation zu bekommen.

War es hilfreich?

Lösung

Sie verwenden die Benutzereinstellungen falsch. Bei der Vorstellung der App, werden Sie zum Aufruf -[NSUserDefaults registerDefaults:] mit einem Wörterbuch angenommen, dass die Standardwerte für alle Einstellungen enthält.

Dann, wenn der Benutzer eine Präferenz nicht festgelegt hat, -boolForKey den Standardwert zurück.

Andere Tipps

Mit der -objectForKey: Methode. Dies wird Ihnen sagen, ob der Schlüssel vorhanden ist.

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