2009-05-11 20 views
8

Estoy trabajando en un proyecto donde hay visualización de datos.¿Buena práctica? iphone: datos de sincronización

Mi objetivo final es que tengo un conjunto de datos enviados con la descarga de la aplicación de iPhone. Pero lo quiero conectado a un backend, que si el iphone tiene una conexión con internet. puede sincronizar los cambios desde el back-end.

La sincronización no es problema o la conexión entre el backend & el iphone.

Pero, ¿qué debo usar como almacenamiento de datos en mi iphone? ¿Cuál es la mejor manera? Mis datos son puramente de texto y no tienen que ser seguros.

Pero su característica principal debe ser la actualización de ciertas partes de datos (agregar y eliminar no son tan importantes).

Entonces, ¿qué es lo más fácil (léase: desarrollo menos lento) o la mejor manera?

  • sqlite?
  • plist?
  • ..?

Respuesta

3

Los mejores resultados probablemente se lograrán con SQLite. Puede almacenar la base de datos inicial en la aplicación y copiarla a la carpeta Documentos. Solicite los deltas del servidor al inicio para mantener la base de datos sincronizada. Para la sincronización en un sentido, almacenar un campo de versión y luego pedir al servidor que las sentencias de SQL se ejecuten para esa versión debería ser suficiente; para la sincronización bidireccional, probablemente sea necesario algo más complicado.

0

Por una pequeña cantidad de datos (también conocido como se sentiría cómodo carga todo en la memoria), me gustaría almacenar los datos utilizando los NSUserDefaults persistencia mechanims, que pueden manejar fácilmente la serialización y el almacenamiento de las estructuras de datos estándar en Inicio y cierre de la aplicación. Es muy simple/rápido de usar.

Para conjuntos de datos más grandes que no deberían cargarse en la memoria a la vez, sqlite parece razonable.

+0

Los datos pueden crecer hasta 1mb, ¿no es demasiado para NSUserDefaults? ¿Existe una buena práctica para guardar estructuras de datos (como diccionarios o matrices) en sqlite? –

0

Otro enfoque sería utilizar el método NSDictionary writeToFile; que escribirá un NSDictionary (que parece que resolvería sus necesidades de almacenamiento). Luego, para volver a inflar los datos al inicio, obtendría una ruta al archivo plist (escrito por writeToFile) y luego a la ruta NSMutableDictionary initWIthContentsOfFile:.

Consulte el "Desarrollo de aplicaciones de SDK de iPhone", por Jonathan Zdziarski, en el Capítulo 11: Configuración de la aplicación. O eche un vistazo al capítulo más detallado de Administración de archivos y datos de la Guía de programación de aplicaciones para iPhone de Apple.

Estaba en el mismo barco que usted, pensando que necesitaría SQLLite para almacenar los datos descargados de un servicio web. Reemplacé el servicio web por un proceso más simple que maneja las solicitudes JSON y devuelve mis datos en un formato NSDictionary. Luego uso el JSON SDK 2.2 para el iPhone para tomar los datos JSON entrantes y almacenarlos en un NSDictionary. Luego, cuando puedo almacenar fácilmente los datos en el plist como se mencionó anteriormente.

Esto funciona para mí, pero dependiendo de lo que esté haciendo con sus datos tal vez necesite algo diferente.

Buena suerte.

Cuestiones relacionadas