persistencia datos data iphone objective-c core-data plist

iphone - datos - user defaults swift 4



¿Cuáles son algunas ventajas de usar Core Data?(a diferencia de plist) (2)

Algunas ventajas fuera de mi cabeza:

  • Mucho mejor manejo de la memoria. Con un plist debes cargar todo en la memoria; con Core Data, solo se deben cargar los objetos que está utilizando actualmente. Además, una vez que se cargan los objetos, normalmente son objetos de "error" de marcador de posición cuyos datos de propiedad no se cargan hasta que lo necesite.
  • En relación con lo anterior, cuando tiene cambios, puede guardar solo los objetos modificados, no todo el conjunto de datos.
  • Puede leer / escribir sus objetos modelo directamente en lugar de convertirlos a / desde algo como un NSDictionary.
  • Clasificación integrada de objetos cuando los recuperas del almacén de datos.
  • Sistema rico de predicados para buscar su conjunto de datos para objetos de interés.
  • Las relaciones entre entidades se manejan directamente, como propiedades en los objetos relacionados. Con un plist necesitarás hacer algo como almacenar una ID de objeto para una relación, y luego buscar el objeto relacionado.
  • Validación automática opcional de valores de propiedad.

Los modelos de datos no usan matrices, pero las relaciones "to-many" se modelan como conjuntos.

Soy relativamente nuevo en iOS y en la programación, e hice una aplicación antes, pero usé un plist para guardar, que guardé en la carpeta de documentos. Ahora, estoy pensando en cambiar a Core Data, pero parece un poco complicado, y no estoy seguro si funcionará para lo que quiero. Voy a tener un montón de datos que necesito para graficar, así que no estoy seguro de si Core Data es mejor para esto, ya que parece que no puedo crear un tipo de matriz en el archivo .xcdatamodeld. ¿Cuáles son algunas otras ventajas de Core Data? ¿Es más rápido? Más fácil de usar (una vez que lo configuró)?

Actualización: para cualquiera que se pregunte, terminé la aplicación, y valió la pena aprender cómo usar Core Data, y fue mucho menos complicado de lo que pensé originalmente. Hacerlo con los plists habría sido un infierno. La forma en que lo hacen parece un poco críptico al principio, pero si comienzas a usarlo, lo conseguirás. Las relaciones son realmente lo que es asombroso al respecto.


Es una cuestión de lo que estás ahorrando. Para cadenas simples, matrices, diccionarios, está bien usar un plist. Para algo más complicado (datos, imágenes, información no objeto) o algo con muchas relaciones (relación de pensamiento entre canción y álbum, o foto con fotógrafo), entonces algo así como una solución más robusta podría funcionar mejor como SQLite.

CoreData es un contenedor basado en Object-c alrededor de SQLite. Si crees que podrías querer algo más complicado, CoreData podría ser el camino a seguir.

Si necesitas un tutorial rápido, echa un vistazo a: http://www.raywenderlich.com/934/core-data-tutorial-getting-started

Esto me ayudó y me permitió aprender los aspectos básicos del funcionamiento de CoreData.

¡Buena suerte!