2012-06-05 13 views

Respuesta

4

Desde una perspectiva CoreData, que realmente no crean nuevas tablas porque las tablas de bases de datos son sólo una posible tipo de tienda asociada con la persistencia del modelo de datos central.

Puede, sin embargo, crear nuevas entidades de datos centrales programáticamente utilizando la clase NSEntityDescription. En la documentación de la clase NSEntityDescription se encuentra esta:

Entity descriptions are editable until they are used by an object graph manager. This 
allows you to create or modify them dynamically. However, once a description is used 
(when the managed object model to which it belongs is associated with a persistent store 
coordinator), it must not (indeed cannot) be changed. This is enforced at runtime: any 
attempt to mutate a model or any of its sub-objects after the model is associated with a 
persistent store coordinator causes an exception to be thrown. If you need to modify a 
model that is in use, create a copy, modify the copy, and then discard the objects with 
the old model. 

nunca he intentado modificar uno en tiempo de ejecución, así que no estoy seguro exactamente lo bien que funciona cuando usted tiene una tienda de SQLite persistencia existente, si es todas. Pero probablemente valga la pena jugar con NSEntityDescription para ver si te acerca a lo que intentas hacer.

+0

Gracias Tim, en comparación con muchos de los frameworks de iOS, coredata es un poco agitado para que me pueda acostumbrar. – shebelaw

+0

Bien puesto Tim ... –

+0

@shebelaw: Es bastante complejo empezar, pero si necesitas un refuerzo, te recomendaría los libros de Big Nerd Ranch. Ponen las cosas en términos simples, tampoco se andan con rodeos. http://www.bignerdranch.com/books probablemente sea más barato obtener los libros en Amazon como copias de segunda mano, pero aún así vale la pena mirar. –

0

Normalmente crea el modelo de objetos administrados gráficamente utilizando la herramienta de diseño de modelos de datos de Xcode. (Si lo desea, puede construir el modelo de programación en tiempo de ejecución

Core Data programming Guide

+0

No creo que eso sea posible. donde puedes hacer esto antes? – shebelaw

+0

@Shanmugaraja G: No se pueden cambiar los modelos de forma programática una vez que se han ingresado a través de la tienda persistente. Sin embargo, puede cambiar los modelos que no están 'bloqueados' en una tienda. –

0

sin embargo, puede:

  • crear un contexto de modelo de objetos (fuera de la actual se encuentra en/uso)
  • Crear una o más entidades
  • Crear un almacén persistente SEPARADO para ese modelo
  • Guardar entidades, etc.
  • cerrar la tienda cuando haya terminado

No puede cambiar los modelos sobre la marcha, ya que son más o menos fijo cuando se detuvieron en el entorno de ejecución.

Cuestiones relacionadas