2011-04-08 19 views
37

Estoy usando [[NSUserDefaults standardUserDefaults] synchronize] cada vez que escribo algo en la lista. Es eso exagerado? ¿O hay efectos adversos al hacer esto?Mejor práctica para NSUserDefaults sincronizar

+0

Estoy bastante seguro de que lo auto-enjuaga cuando el programa "se siente así". Sé que es un poco vago, pero funciona. Debería considerar buscar NSUserDefaultsController en su lugar. – alexy13

Respuesta

51

Sí, puede ser exagerado pero en una aplicación simple ¿notará un golpe de rendimiento? probablemente no solo si solo está guardando después de la interacción básica del usuario, como que el usuario seleccione su configuración. El beneficio de llamar a la sincronización más a menudo es si su aplicación puede fallar y la información que está guardando es importante, de lo contrario, iOS se la guardará periódicamente.

+1

Gracias por la información. –

6

El método de sincronización, que se invoca automáticamente a intervalos periódicos, mantiene la memoria caché en memoria en sincronización con la base de datos predeterminada de un usuario.

Llamada con frecuencia puede causar problemas de rendimiento, pero no es una exageración si se trata de una pequeña aplicación (como ya se mencionó) O si realmente necesita su plist estar al corriente de los cambios realizados en el hilo actual o cambios realizados en otro hilo en la aplicación.

Debido a que este método se invoca automáticamente a intervalos periódicos, utilizar este método sólo si no se puede esperar a que la sincronización automática (por ejemplo, si la aplicación está a punto de salir) o si desea actualizar los valores predeterminados del usuario a lo que está en el disco aunque no haya realizado ningún cambio

Probablemente el único efecto adverso que observe es una disminución insignificante en el rendimiento.

Cuestiones relacionadas