2011-02-03 4 views
5

Apple fornisce documentazione per la gestione delle preferenze utente tramite Core Foundation e Foundation Kit. Inoltre, non offre alcun aiuto per la scelta dell'uno o dell'altro, ad eccezione del fatto che sono effettivamente diversi ("non con pedaggio gratuito").NSUserDefaults vs CFPreferenze, cosa considerare

Quindi, sono interessato, c'è qualcosa che dovrei considerare di selezionare il meccanismo di configurazione per l'applicazione? O dovrei semplicemente lanciare una moneta?

Grazie!

risposta

4

Si suppone di utilizzare NSUserDefaults, che è assolutamente la scelta predefinita. Suppongo che potresti usare CFPreferences, ma a meno che tu non abbia una buona ragione per fare questa scelta, eviterei CF -API.

+0

Non ho inciampato accidentalmente su "CFPreferences", quelle funzioni sono utilizzate in diversi tutorial di Apple, ad es. [questo] (http://developer.apple.com/library/mac/#documentation/UserExperience/Conceptual/PreferencePanes/Tasks/Sample.html#//apple_ref/doc/uid/20000710-BABFCABJ). Ma grazie per l'input, stavo cercando di ascoltare qualcuno con esperienza. –

+4

Inoltre, c'è qualche ragione particolare per * evitare le CF-API *? –

+4

@Nikita Rybak: In genere sono più difficili da utilizzare (almeno perché non esiste un modo semplice per autorelettere gli oggetti CF). CFPreferences è progettato specificamente per consentirti di lavorare con le preferenze di qualsiasi applicazione, non solo le tue e, per questo, è in realtà più semplice. Per lavorare con le tue preferenze, NSUserDefaults è più facile, quindi dovresti usarlo per questo motivo. –

0

NSUserDefaults legge e scrive sull'ambito utente, mentre CFPreferences supporta la scrittura sull'ambito utente e sull'ambito macchina. È possibile utilizzare CFPreferences per un'impostazione a livello di computer che può essere applicata a tutti gli utenti che utilizzano l'applicazione sulla stessa macchina.