Attualmente sto sviluppando un'applicazione in cui la funzionalità dipende in gran parte dai dati JSON recuperati. La maggior parte dei dati che sto pianificando di salvare nei dati principali. Tuttavia, non sono sicuro di dover salvare tutte le informazioni relative all'utente (impostazioni, preferiti, twitter, Facebook e ect.) Anche nei dati di base o dovrei usare NSUserDefaults? Quali sono i pro e i contro?Devo utilizzare i dati di base per memorizzare alcune preferenze dell'utente o salvarlo in NSUserDefaults?
risposta
È possibile fare riferimento alla propria guida di Apple: Implementing Application Preferences
è possibile memorizzare l'impostazione utente in alcun modo come si desidera: La scelta tra NSUserDefaults e Core Data è solo tra API, in cui il primo è stato in realtà progettato per gestire preferenze utente.
NSUserDefaults e il "componente delle impostazioni integrato" sono davvero la stessa cosa. Utilizzando l'app delle impostazioni, verranno comunque memorizzate le preferenze in NSUserDefaults che accedi alla tua app con tale API.
Il motivo per cui non si desidera utilizzare l'app delle impostazioni incorporate potrebbe essere: È difficile per gli utenti modificare tali impostazioni. Se disponi di impostazioni che gli utenti potrebbero voler cambiare di frequente, puoi farlo all'interno dell'app (ad esempio, attivare/disattivare la musica, cambiare il nome del giocatore). Inoltre, dal momento che hai il pieno controllo della tua app, puoi disporre di una GUI più flessibile rispetto a quella fornita da Apple in Settings.app
Per quanto riguarda l'utilizzo di dati di base o NSUserDefaults ... direi di andare con NSUserDefaults in quanto è molto più semplice da implementare ed è stato progettato per farlo, dove l'implementazione dei dati fondamentali richiederà un grande sforzo.
Per chiunque trovi questo thread nel 2017+, la pagina collegata sopra non esiste più . Credo che questa guida, ora chiamata [Guida alla programmazione di preferenze e impostazioni] (https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/UserDefaults/Introduction/Introduction.html), sia la versione aggiornata. –
- 1. Devo usare NSUserDefaults o un plist per memorizzare i dati?
- 2. come memorizzare NSMutableArray in NSUserDefaults
- 3. Dati principali vs NSUserDefaults per dati utente registrati
- 4. Posso utilizzare iCloud per sincronizzare il file plist NSUserDefaults
- 5. Devo usare JSON o AJAX per i dati di risposta?
- 6. Salvataggio delle preferenze per utente o per documento in uno script Photoshop
- 7. iOS - Impossibile memorizzare NSDate in NSUserDefaults
- 8. Come memorizzare un'immagine nei dati di base
- 9. Qual è l'alternativa migliore per le preferenze condivise in Android?
- 10. : Devo utilizzare VARCHAR2 o CHAR
- 11. Devo utilizzare document.createDocumentFragment o document.createElement
- 12. Come utilizzare NSUserDefaults con AppDelegate
- 13. iOS: è sicuro memorizzare informazioni utente sensibili in [NSUserDefaults standardUserDefaults]?
- 14. Come memorizzare l'elenco di array di oggetti personalizzati in NSUserDefaults?
- 15. Come dovrei memorizzare i dati per utente in WinForms?
- 16. Devo utilizzare l'ambiente di OwinContext per conservare i dati specifici dell'applicazione per richiesta
- 17. Come memorizzare in modo sicuro le credenziali immesse in Preferenze applicazione?
- 18. Il modo migliore per memorizzare i dati gerarchici in hbase
- 19. Devo memorizzare i riferimenti nelle classi in C++?
- 20. Come memorizzare i dati storici
- 21. Utilizzo di HBase per memorizzare i dati delle serie temporali
- 22. Cache dati in preferenze condivise
- 23. Come devo memorizzare quantità estremamente elevate di dati sul traffico per un facile recupero?
- 24. Devo occuparmi di memorizzare i dati DateTime come julianday in SQLite?
- 25. Come proteggere NSUserDefaults?
- 26. Devo utilizzare Dockerfiles o immagine commit?
- 27. SQL Server: devo utilizzare un "Lavoro agente" o un "Piano di manutenzione" per cancellare i vecchi dati?
- 28. Il modo migliore per memorizzare i dati in BoltDB
- 29. Alcune domande Python di base
- 30. typedef per memorizzare i puntatori in C
Questa risposta ha un buon confronto: http://stackoverflow.com/questions/6173625/what-are-the-limitations-of-nsuserdefaults – dhirschl