2012-04-20 798 views
13

cuando desarrollo una aplicación para iPhone (Time Tracker, ToDoList, etc.) Nunca sé cuál es la mejor manera de manejar los datos. Una vez que utilicé un plist, la próxima vez sqlite o CoreData.Trabajando con datos en aplicaciones iOS (Qué elegir? NSData, CoreData, sqlite, PList, NSUserDefaults)

¿Cómo se decide cuál es el mejor para su proyecto? (Sólo hablando de gestión de datos)

Por ejemplo, si se quiere desarrollar:

  • Time Tracker App> Es PLIST su elección?
  • RSS Reader App> CoreData?
  • Aplicación de fotografía> sqlite?
  • EMail Cliente>?

¿Para un principiante me puede señalar aproximadamente a las instrucciones correctas? (Sé que depende mucho de la aplicación y de lo que te guste hacer con pero cualquier idea ayudará)

Estoy lejos de desarrollar aplicaciones complicadas, todavía son bastante simples.

Gracias por la ayuda, Marc

+1

si su aplicación es 'sistema de gestión de bases de datos' y luego vaya para coredata.! Pero recuerda que es un marco y no una base de datos. –

Respuesta

26

Puede utilizar estas reglas generales para decidir qué modelo de almacenamiento va a trabajar para su aplicación.

  • Si los datos caben en la memoria por completo y es relativamente poco estructurado, el uso plist
  • Si los datos se ajusta en la memoria por completo y tiene una estructura en forma de árbol, el uso de XML
  • Si los datos no cabe en la memoria y tiene una estructura de gráfico, y la aplicación no necesita capacidades de consulta extraordinarias, utilice Core Data
  • Si los datos no caben en la memoria, tiene una estructura compleja o la aplicación se beneficia de poderosas capacidades de consulta proporcionadas por las bases de datos relacionales , use sqlite
  • Si los datos deben ser secretos (p.ej. una contraseña), use keychain.

Tenga en cuenta que estas opciones a menudo se superponen, porque los modelos de almacenamiento múltiple se adaptarán a la misma aplicación. Su decisión final depende de sus preferencias personales: elige una tecnología que comprenda mejor.

Hubo un very good question about sqlite vs. Core Data en Stack Overflow, es posible que desee leer las respuestas a esa pregunta.

+0

Exactamente lo que necesitaba, muy buena respuesta, gracias y que tenga un buen fin de semana. –

1

Mi regla de oro para cada uno de los sería:

  • Time Tracker App> Datos Básicos de
  • RSS Reader App> Datos Básicos de
  • fotos Aplicación> Datos Básicos de
  • cliente de correo electrónico> Datos centrales

Aunque en cada caso habría cosas que almacenaría en el sistema de archivos. Por ejemplo, la aplicación de fotos obviamente pondría las fotos reales en el sistema de archivos.El texto de los correos electrónicos estaría en el sistema de archivos, etc. Los mensajes RSS reales también podrían ser archivos de texto, pero con metadatos en objetos de Datos centrales.

En algún momento, puede encontrar que los datos que está almacenando están superando la escalabilidad de Core Data. En ese momento consideraría mudarse a SQLite.

El punto es que Core Data es tan fácil de usar y tan superior a las supuestas alternativas más livianas, ¿por qué no lo usarías?

+0

Buen punto Jeremy. –

Cuestiones relacionadas