limitazione NSUserDefaults boolforKey da disegno?
-
25-09-2019 - |
Domanda
La documentazione NSUserDefaults
API ha il messaggio boolForKey:
che è descritto in questo modo -
boolForKey:
Restituisce il valore booleano associato con la chiave specificata.
- (BOOL)boolForKey:(NSString *)defaultName
Valore di ritorno Se un valore booleano è associato con DefaultName nelle impostazioni predefinite dall'utente, viene restituito tale valore. In caso contrario, NO viene restituito.
Dato che un [[NSUserDefaults standardUserDefaults] boolForKey:@"some_Key"]
restituisce un NO può essere sia perché la chiave non esiste o la chiave esiste e ha un valore boolean
NO. Come possiamo differenziare? A partire da ora, posso solo evitare di entrare in questa situazione, in primo luogo.
Soluzione
Si sta utilizzando le impostazioni predefinite dall'utente in modo non corretto. In occasione del lancio della vostra applicazione, si suppone di chiamata -[NSUserDefaults registerDefaults:]
con un dizionario che contiene i valori di default per tutte le preferenze.
Quindi, se l'utente non ha una preferenza, -boolForKey
restituirà il valore di default.
Altri suggerimenti
Utilizzare il metodo -objectForKey:
pure. Questo vi dirà se esiste la chiave.