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.

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top