Xcode 4, Versión del modelo de datos principales - Establecer versión actual

183

Estoy confundido acerca de cómo realizar la siguiente función en Xcode 4 para configurar el modelo que se utilizará después de crear un modelo versionado.

Diseño> Modelo de datos> Establecer versión actual

Nate Potter
fuente
15
Desearía poder votar esto cada vez que tenga que volver a hacer referencia a él.
erik

Respuestas:

329
  1. Haga clic en el archivo de nivel superior .xcdatamodelId (el que tiene las muchas versiones de .xcdatamodel debajo de él como elementos secundarios).
  2. Asegúrese de que el panel lateral de Utilidades esté visible (si no, haga clic en el tercer botón "Ver" en la esquina superior derecha de la ventana).
  3. En el panel lateral Utilidades, seleccione el inspector de archivos (pequeño icono de papel en la parte superior izquierda)
  4. Verá "Modelo de datos básicos versionados" como un grupo, así que simplemente cambie el menú desplegable "Actual" a su nueva versión.
Ben
fuente
2
¡Genial gracias! También encontré ese mismo panel en Ver> Utilidades> Inspector de archivos
Nate Potter
Todavía me estoy acostumbrando a los cambios entre Xcode 3 y 4, ¡gracias!
Chris
15

En Xcode 4, si solo ve una versión de su modelo de datos en la sección "Modelo de datos básicos versionados - Actual" del inspector de archivos cuando tiene seleccionado su archivo * .xcdatamodeld; o tiene una segunda versión de su archivo * .xcdatamodel que se muestra fuera del paquete xcdatamodeld en el navegador de proyectos de Xcode, lea a continuación.

Para arreglar esto:

1) Elimine las referencias tanto * .xcdatamodeld como * .xcdatamodel de Xcode haciendo clic derecho sobre ellas en el navegador del proyecto y presionando "Eliminar".

2) Cuando Xcode se lo solicite, haga clic en Eliminar solo referencias (muy importante).

3) Reinicie Xcode por si acaso hay algún almacenamiento en caché.

4) Vuelva a agregar el único archivo * .xcdatamodeld que contiene ambos archivos * .xcdatamodel.

Xcode ahora debería reconocer las relaciones y permitirle expandir el archivo * .xcdatamodeld en el navegador del proyecto para mostrar ambos archivos * .xcdatamodel en el paquete xcdatamodeld padre, mostrando también una marca de verificación verde al lado del modelo actual. Esto también debería permitirle seleccionar la versión actual del modelo de datos en el inspector de archivos en lugar de mostrar solo una versión.

Andrés
fuente
Y así termina rascándose la cabeza.
Steve Madsen
¡Accidentalmente cambié el xcdatamodelid padre al paquete de aplicaciones y esta solución ayudó!
morph85
4

Para Xcode 4.2

  1. Haga clic en YourModel.xcdatamodeld

  2. Hacer visible el panel lateral

  3. En "modelo de datos básicos versionado", seleccione el "cuadro desplegable actual", seleccione su modelo de datos.

Ahora la marca de verificación verde se mueve a su modelo de datos actual.

Dax
fuente
No hay nada como el "modelo de datos básicos versionado" en la "Biblioteca de objetos". La primera respuesta (de Mac_Cain13) es correcta, aunque parece que tengo un error extraño con mi modelo fuera de .modeld en Xcode.
Stuff mc
@StuFFmc: revise mi publicación a continuación para solucionar el problema del archivo xcdatamodel que está fuera del paquete xcdatamodeld en el navegador de proyectos de Xcode.
Andrew
2

Al buscar en la Ayuda de Xcode la "Versión actual" se obtiene una receta "Configuración de la versión actual de un modelo de objeto administrado" que describe cómo hacer esto ...

mmalc
fuente
1

Un poco fuera de tema, pero si ha llegado a esta pregunta para saber cómo crear una primera versión nueva de su modelo (como lo hice): haga clic en el archivo xcdatamodel >> Menú "Editor" >> Agregar versión del modelo

Esto iniciará el versionado del modelo.

Ben G
fuente
-1

También puede usar el método setter de CoraData ...
Simplemente haga algo como esto ...

En su CustomCoreDataManager.m :

#import "ObjectiveRecord.h"

y llamar al método init así

- (instancetype)init {

    self = [super init];

    if (self) {           
        [[CoreDataManager sharedManager] setModelName:@"YourModelName"];
    }

    return self;
}
Juan
fuente