NSUserDefaults boolforKey Einschränkung durch design?
Den NSUserDefaults
API-Dokumentation hat die boolForKey:
Nachricht, die wie folgt beschrieben -
boolForKey:
Gibt den Boolean-Wert mit dem angegebenen Schlüssel.
- (BOOL)boolForKey:(NSString *)defaultName
Rückgabewert
Wenn ein boolescher Wert zugeordnet ist defaultName in den user-defaults, wird dieser Wert zurückgegeben. Andernfalls werden KEINE zurückgegeben.
Gegeben, dass ein [[NSUserDefaults standardUserDefaults] boolForKey:@"some_Key"]
gibt wieder ein NEIN, es kann entweder sein, weil der Schlüssel nicht vorhanden ist oder der Schlüssel existiert und hat eine boolean
Wert NEIN. Wie können wir unterscheiden? Ab jetzt kann ich nur vermeiden, in dieser situation in den ersten Platz.
- stackoverflow.com/questions/1965765/... . Ich HABE also NICHT so ein, wenn ich suchte vor. 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sind Sie mit den Standardeinstellungen des Benutzers falsch. Bei der Vorstellung der app, die Sie anrufen sollen
-[NSUserDefaults registerDefaults:]
mit einem Wörterbuch, das enthält die Standard-Werte für alle Einstellungen.Dann, wenn der Benutzer hat keine Präferenz,
-boolForKey
Standardwert zurück.Verwenden Sie die
-objectForKey:
Methode als gut. Dies wird Ihnen sagen, ob der Schlüssel vorhanden ist.BOOL
s sind nicht Objekte, sondernNSUserDefaults
behandelt Sie alsNSNumber
Instanzen, das ist, was du bekommst von-objectForKey: