¿NSUserDefaults persiste a través de una actualización de una aplicación en la tienda de aplicaciones?

StackOverflow https://stackoverflow.com/questions/1638766

  •  08-07-2019
  •  | 
  •  

Pregunta

¿Es este el caso? ¿NSUserDefaults se restablece cuando envía una actualización a una aplicación en App Store, o se restablecen?

Mi aplicación se bloquea cuando se actualiza pero no se bloquea cuando se descarga por completo, así que estoy tratando de determinar qué podría ser diferente en la sesión actualizada a la sesión recién descargada.

Saludos, Nick.

¿Fue útil?

Solución

Por lo general, no se restablecen a menos que el usuario elimine la aplicación. Para datos básicos, NSUserDefaults es la mejor manera de guardar datos como preferencias, fechas, cadenas, etc. Si está buscando guardar imágenes y archivos, el sistema de archivos es una mejor opción.

Otros consejos

Creo que la respuesta es SÍ, persistirá. Esto también está completamente documentado en el capítulo Directorio de aplicaciones en la Guía de programación del sistema operativo Apple iPhone.

  1. Respuesta directa a la pregunta publicada: SÍ.
  2. Tu problema: Su aplicación se bloquea debido a problemas de lógica. Supongamos que almacena un objeto por defecto y la aplicación verifica su valor en el lanzamiento (o en otro lugar). En la actualización, puede cambiar la forma en que se verifica o usa, p. espera un valor, pero el objeto es nulo o viceversa. Esto puede causar un SIGABRT o EXC_BAD_ACCESS.

Si tenía un modelo de Core Data y cambió algo en su modelo y actualización, sin administrar la migración, esa es probablemente la razón por la cual su aplicación falla en la actualización ...

Tengo una experiencia similar. Nuestra aplicación almacena un número de versión en Settings.Bundle / Root.Plist. Esto se muestra a través de la aplicación de configuración de iPhone. Lo que encontramos es que en una instalación, el número de versión se carga desde el paquete de la aplicación, por lo tanto, el número de versión es correcto. Sin embargo, en una actualización, el número de versión no cambia. Esto da la impresión de que el usuario está ejecutando una versión anterior de la aplicación. No tenemos ninguna lógica vinculada al número de versión, es solo para mostrar (podría ser utilizado por el personal del centro de contacto al diagnosticar fallas).

Nuestra experiencia es que NSUserDefaults no se borra cuando un usuario actualiza nuestra aplicación, pero la pantalla de Configuración tampoco se actualiza.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top