Pregunta

Para mi aplicación actual que estoy usando el enfoque NSKeyedArchiver persistir mis objetos al iPhone entre lanzamientos. Me pregunto si tiene sentido para etiquetar este archivo cuando se crea con un número de versión para que en el futuro, cuando las revoluciones de aplicaciones sabremos qué tipo de datos que estamos tratando con la migración debiera ser necesario. Se recomienda esto para algo tan simple como una NSArray de objetos personalizados que son serializados con NSKeyedArchiver? Si es así cómo / dónde esconder el número de versión?

Gracias!

¿Fue útil?

Solución

Si usted se siente como el formato cambiará, entonces sí, tendrá que alguna forma de detectar qué versión del archivo que se está trabajando. Una forma sencilla de hacer esto (ya que estás usando NSArray) sería simplemente agregar el número de versión como un NSNumber ya sea al principio o al final de la matriz. Alternativamente, para un enfoque más complicado que en realidad no cambia los archivos, se puede almacenar la información en un archivo separado (por ejemplo, utilizando un NSDictionary que une el nombre de archivo y el número de versión). O bien, puede utilizar el sistema de valores predeterminados del usuario para almacenarlo, y si es Frome una versión anterior, actualice el archivo y la clave por defecto del usuario.

Yo no usaría el segundo método, a menos que usted está tratando con varios archivos de datos con llave. De los tres, probablemente elegiría el último, pero puede haber alguna otra manera de hacerlo que tiene más sentido.

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