solo algunos consejos que podrían ayudar en el diseño de su aplicación.
Antes que nada sería bueno subrayar que CoreData no es realmente comparable con plist. Lo que quiero decir es que CoreData es como una capa de abstracción del modelo de datos sobre su almacenamiento de datos que le permite administrar las relaciones y obtener reglas entre las diferentes entidades de datos. Detrás de la capa CoreData, su almacenamiento de datos podría basarse en plist (solo osx), base de datos sqlite u objeto binario.
Esto también es importante porque lo ayuda a entender el alcance de CoreData: si necesita mantener una relación lógica entre diferentes entidades de datos o realizar múltiples consultas sobre los mismos datos o serializar/deserializar estructuras de big data, CoreData proporciona la mejor La solución más rápida para hacerlo realidad. Si solo necesita almacenar una lista simple de elementos que solo necesitan mostrarse, un rebote de un archivo plist debería ser suficiente.
Otro punto importante es la decisión del tipo de datos que necesita para almacenar: según Apple, archivos plist están optimizados para cadenas, números, fechas y algunos datos binarios. Esto es lo que dice que Apple sobre plist:
Note that property lists should be used for data that consists primarily
of strings and numbers. They are very inefficient when used with large blocks
of binary data.
Many applications require a mechanism for storing information that will
be needed at a later time. For situations where you need to store small
amounts of persistent data — say less than a few hundred kilobytes — property
lists offer a uniform and convenient means of organizing, storing, and
accessing the data.
Esto significa que si usted necesita para almacenar cosas "pesada" o objetos complejos y gestionarlos (como la búsqueda de ellos valle), el sistema de almacenamiento en caché del analizador plist podría ser ineficiente (principalmente en iOS).
En mi opinión, su idea de almacenar alrededor de 200k de tweets lineales (alrededor de 1000 tweets?) De una línea de tiempo funcionará bien con una solución basada en plist. También considere que el analizador plist se acelera fuertemente con una estructura de datos pequeña, entonces tendrá un mejor rendimiento y menos uso de memoria (principalmente durante el inicio) porque no necesita inicializar CoreData ni ningún otro "envoltorio de código" alrededor de su almacenamiento de datos. Solo un simple uso sobre la marcha de NSDictionary
, NSArray
y más.
Por último, la implementación plist es lo suficientemente económica como para darle la posibilidad de avanzar en CoreData en un siguiente paso.
Lo que quiero decir es que a veces no es necesario el uso de un tanque si es necesario coger algunas moscas :-)
Espero que esto ayude. Ciao!
¿Pero realmente vale la pena por unos pocos KB de datos almacenados? También estoy planeando hacer Core Data en algún momento, pero solo tengo unas semanas más hasta la prueba beta ... ¿Así que crees que debería seguir con el plist? –
Bueno, no es como si no pudieras decidir mudarte a Coredata en el futuro si fuera necesario. Si necesita velocidad para comercializar en este momento, vaya con los plists, ya que será un pedazo de pastel para implementar. – Rog