2011-02-03 10 views
5

Apple proporciona documentación para administrar las preferencias del usuario a través de Core Foundation y Foundation Kit. Tampoco ofrece ninguna ayuda con la elección de uno u otro, a excepción de que son realmente diferentes ("no puente libre de peaje").NSUserDefaults vs CFPreferences, qué considerar

Entonces, estoy interesado, ¿hay algo que debería considerar al seleccionar el mecanismo de configuración para la aplicación? ¿O debería arrojar una moneda?

Gracias!

Respuesta

4

Se supone que debe usar NSUserDefaults, que es absolutamente la opción predeterminada. Supongo que podría usar CFPreferences, pero a menos que tenga una buena razón para tomar esa decisión, me mantendría alejado de CF -API.

+0

No tropecé con 'CFPreferences' accidentalmente, esas funciones se usan en varios tutoriales de apple, p. [este]] (http://developer.apple.com/library/mac/#documentation/UserExperience/Conceptual/PreferencePanes/Tasks/Sample.html#//apple_ref/doc/uid/20000710-BABFCABJ). Pero gracias por la entrada, estaba buscando saber de alguien con experiencia. –

+4

Además, ¿hay alguna razón particular para * mantenerse alejado de las API de CF *? –

+4

@Nikita Rybak: Suelen ser más difíciles de usar (al menos porque no hay una forma incorporada fácil de liberar automáticamente los objetos CF). CFPreferences específicamente está diseñado para permitirle trabajar con las preferencias de cualquier aplicación, no solo la suya, y para eso, en realidad es más fácil. Para trabajar con sus propias preferencias, NSUserDefaults es más fácil, por lo que debe usar eso por ese motivo. –

0

NSUserDefaults lee y escribe en el ámbito del usuario, mientras que CFPreferences admite la escritura en el alcance del usuario y en el alcance de la máquina. Puede usar CFPreferences para una configuración de máquina que se puede aplicar a todos los usuarios que usan la aplicación en la misma máquina.

Cuestiones relacionadas