Quando sto impostare le preferenze predefinite per la mia app, sto facendo la seguente:Perché utilizzare registerDefaults: anziché setValue: forKey :?
1) Lettura Root.plist
dall'interno Settings.bundle
in un dizionario.
2) I test se una preferenza è impostato, e se non sto registrando il mio dizionario di default tramite [NSUserDefaults standardUserDefaults] registerDefaults:]
Il problema è, di default registrati registerDefaults:
non vado al negozio persistente, quindi, se l'utente non cambia le loro preferenze Sto leggendo le mie preferenze predefinite e registrandole con NSUserDefaults
ogni volta che l'app si avvia.
Invece di usare registerDefaults:
ho potuto utilizzare setValue:forKey:
e avere la mia impostazione di default andare al negozio persistente, bypassando la necessità di costruire & registrare un dizionario su ogni lancio. Tuttavia, Apple documentation e sample code puntano entrambi a registerDefaults:
.
Quindi sto cercando di capire quando e perché dovrei usare registerDefaults:
e quando/perché dovrei usare setValue:forKey:
invece?
Ho trovato questa domanda correlata: [Qual è l'uso di [NSUserDefaults registerDefaults:]?] (Http://stackoverflow.com/questions/4931167/what-is-the-use-of-nsuserdefaults-registerdefaults) Mentre le risposte spiegano le differenze, non dicono ancora veramente perché dovresti usarne una sull'altra. (Le risposte sembrano ignorare la mia domanda sulla persistenza.) – gabrielk