.xcdatamodeld file que no muestra la estructura del model de datos en Xcode

Tengo el file .xcdatamodeld en mi proyecto pero no se abre al model de datos.

Cuando hago clic en el file en la barra lateral izquierda en Xcode, continúa mostrando los contenidos del file seleccionado anteriormente en lugar de mostrar el model de datos. Del mismo modo, cuando presiono el button derecho sobre el file y elijo "Abrir como>", no puedo seleccionar mostrarlo como un model de datos, no aparece nada. Revisé el código del repository SVN e incluso el propietario del archivador no puede verlo en su área de trabajo.

Este es un síntoma que he visto de vez en cuando. En al less un caso, se debió a que Xcode tenía la ruta incorrecta almacenada en el componente de path de la sección XCVersionGroup del file project.pbxproj, y que tenía un componente de name adicional aparentemente innecesario en esa sección. Probablemente sea posible editar manualmente este file, pero siempre me resisto a imitar el file del proyecto directamente y, afortunadamente, hay una manera más fácil.

  1. Navegue hasta su file .xcdatamodeld en el Finder. La forma más fácil de hacerlo es hacer clic con el button derecho / Ctrl y hacer clic en el file .xcdatamodeld y seleccionar "Mostrar en el Finder".
  2. Arrastre el file desde el Finder y colóquelo inmediatamente arriba o debajo de la reference actual del .xcdatamodeld en Project Navigator en su proyecto Xcode.
  3. Haga clic en Aceptar para aceptar la import, asegurándose de que la está agregando a los objectives correctos. (Los objectives correctos dependerán de su proyecto).
  4. Ahora tendrá dos references al mismo file en Project Navigator. Al hacer clic en cualquiera de ellos, se mostrará la estructura del model de datos deseada.
  5. Eliminar la reference duplicada al file model. Haga clic en una de las references de file (no parece importar, aunque puede ser mejor eliminar la anterior) y presione Eliminar.
  6. En el cuadro de dialog de confirmación resultante, asegúrese de seleccionar "Eliminar reference" únicamente y NO mueva el file a la papelera. (Las dos references apuntan a un solo file real en el sistema de files. Mudarse a la papelera desharía la única copy).

Ahora te queda solo una reference al model de datos, y funciona.

Algo que parece desencadenar este error es mover el file .xcdatamodeld en la estructura de files en el disco. Incluso después de volver a asociar correctamente el file con la nueva location (es decir, ya no aparece en rojo en la barra lateral), la sección del file Project mencionado anteriormente no se actualiza correctamente y, por lo tanto, el file no se trata completamente correctamente un file de model de datos Xcode.

Por algunas razones oscuras, a veces Xcode necesita el xcdatamodel d fiel para estar en la carpeta raíz. Aquí escribí una respuesta que explica cómo hacer esto, pero también una solución para tener este file donde quieras.

¡Aclamaciones!

Encontré el mismo problema en Xcode 6.3

La única solución que funcionó para mí fue mover el file .xcdatamodeld de mi carpeta 'Recursos' y en la carpeta raíz del proyecto en el explorador de proyectos Xcode (la location en el sistema de files no importa)

Todavía no estoy seguro de por qué, mover la location del file en la estructura del proyecto hace que no se muestre cuando se hace clic … pero aparentemente, al less en mi configuration, no le gusta vivir en la carpeta Recursos La

Fui víctima de este problema hoy en Xcode8.

Lo solucioné simplemente colocando el file xcdatamodeld fuera de cualquier grupo en el browser del proyecto (panel izquierdo). Tan pronto como lo muevo en un grupo, ya no puedo abrir al pequeño.

El file .xcdatamodeld es un package. Contiene packages .xcdatamodel , uno para cada versión del model. Dentro de cada .xcdatamodel hay un file de contents , que es un XML con descripción de entidades. Para ver qué hay dentro de sus packages, haga clic con el button derecho en el Finder y select Mostrar la opción Contenido del package .

Mostrar contenido del paquete en el Finder

Tal vez no agregaste el file de contents a tu repository. De esta forma, no podrás ver tu model cuando creas una nueva copy de trabajo.

Tuve un problema similar con Xcode 7.3.1.

Resultó estar relacionado con la forma en que se configuraron los packages del model de datos.

Descubrí que había un package de model embedded nested en otro. Digamos que un model de datos de nivel superior llamado FolderNodes.xcdatamodeld que contiene otro con exactamente el mismo nombre … FolderNodes.xcdatamodeld. Inside FolderNodes.xcdatamodeld es el file de contenido real que tiene la información del model.

La solución para mí fue arrastrar el package embedded FolderNodes.xcdatamodeld (número 2) en el proyecto Xcode y NO en su carpeta adjunta.

Apple usa el package para el control de versiones, pero creo que la lógica asociada al movimiento del file del model de datos rompe el package original creando un contenedor networkingundante.

Asegúrate de que tu Version Editor no esté activo.

Tener abierto el Version Editor da como resultado el código XML que se mostrará en lugar del Data Model . Tampoco podrá elegir Data Model en el menu contextual del file xcdatamodeld dentro de Project Navigator .

Ocurre en XCode 8.3 también.

Para mí, mover el file físico a una carpeta diferente, luego eliminar la reference original, luego volver a agregarla al mismo lugar y establecer la reference de nuevo hace el trabajo.