2013-03-12 2 views
10

Ho il file .xcdatamodeld nel mio progetto ma non si apre nel modello dati..xcdatamodeld file non mostra la struttura del modello dati in Xcode

Quando faccio clic sul file nella barra laterale sinistra in Xcode, continua a visualizzare il contenuto del file selezionato in precedenza invece di visualizzare il modello di dati. Allo stesso modo, quando faccio clic con il pulsante destro del mouse sul file e scelgo "Apri come>", non posso selezionare di visualizzarlo come un modello di dati: non viene visualizzato nulla. Ho controllato il codice dal repository SVN e anche il proprietario del filer non è in grado di vederlo nel suo spazio di lavoro.

risposta

9

Questo è un sintomo che ho visto di volta in volta. In almeno un caso, Xcode aveva il percorso errato memorizzato nel componente path della sezione XCVersionGroup del file project.pbxproj e un componente aggiuntivo apparentemente non necessario name in quella sezione. Probabilmente sarebbe possibile modificare manualmente questo file, ma sono sempre riluttante a scimmiottare direttamente con il file di progetto, e fortunatamente c'è un modo più semplice.

  1. Passare al file .xcdatamodeld nel Finder. Il modo più semplice per farlo è Fare clic destro/Ctrl-clic sul file .xcdatamodeld e selezionare "Mostra nel Finder".
  2. Trascinare il file dal Finder e rilasciarlo immediatamente sopra o sotto il riferimento corrente a .xcdatamodeld nel Navigatore progetto nel progetto Xcode.
  3. Fare clic su OK per accettare l'importazione, assicurandosi di aggiungerla alle destinazioni corrette. (Quali obiettivi sono corretti dipende dal tuo progetto.)
  4. Ora avrai due riferimenti allo stesso file nel tuo Navigatore di progetto. Se fai clic su o su, verrà visualizzata la struttura del modello dati desiderata.
  5. Rimuovere il riferimento duplicato al file di modello. Fare clic su uno dei riferimenti al file (non sembra importare quale, sebbene potrebbe essere preferibile rimuovere quello vecchio) e premere Elimina.
  6. Nella finestra di dialogo di conferma risultante, assicurarsi di selezionare solo "Rimuovi riferimento" e NON spostare il file nel cestino. (I due riferimenti puntano a un solo file effettivo nel file system. Spostarsi nel cestino significherebbe quindi eliminare l'unica copia.)

Ora si rimane con un solo riferimento al modello di dati e funziona.

Una cosa che sembra attivare questo errore è spostare il file .xcdatamodeld nella struttura dei file su disco. Anche dopo aver riassociato correttamente il file con la nuova posizione (cioè non appare più in rosso nella barra laterale), l'unica sezione del file Project sopra menzionata non viene aggiornata correttamente e quindi il file non viene trattato in modo corretto come un file Xcode Data Model.

1

Il file .xcdatamodeld è un pacchetto. Contiene i pacchetti .xcdatamodel, uno per ogni versione del modello. All'interno di ogni .xcdatamodel c'è un file contents, che è un XML XML con descrizione delle entità. Per vedere cosa contiene i tuoi pacchetti, fai clic con il pulsante destro del mouse su Finder e scegli l'opzione Show Package Contents.

Show Package Contents in Finder

Forse non è stato aggiunto il file contents nel repository. In questo modo non sarai in grado di vedere il tuo modello quando crei una nuova copia di lavoro da esso.

+0

C'è un altro file in quel pacchetto, il cui nome non riesco a ricordare al momento (forse layout) che può essere danneggiato. Elimina quel file e riapri e Xcode dovrebbe creare un nuovo layout con elementi visibili. –

3

ho incontrato lo stesso problema in Xcode 6.3

L'unica soluzione che ha funzionato per me è stato quello di spostare il file .xcdatamodeld dalla cartella 'Risorse' e nella cartella radice del progetto nel explorer progetto Xcode (la posizione sul file system non ha importanza)

Non sono ancora sicuro del perché, spostando semplicemente la posizione del file nella struttura del progetto, non viene mostrato affatto quando viene cliccato .. ma apparentemente, almeno nella mia configurazione, non mi piace vivere nella cartella Risorse ..

+0

Questo è in realtà il problema ... e la sua soluzione. Ma, ho trovato il modo di avere ancora xcdatamodel ** d ** dove mai lo desideri: http://stackoverflow.com/questions/13728021/xcode-cant-edit-coredata-model/32435681#32435681 –

4

Per alcuni motivi oscuri, a volte Xcode richiede che il file xcdatamodel d si trovi nella cartella principale. Ho scritto una risposta here che spiega come farlo, ma anche una soluzione alternativa per avere questo file dove mai vorresti.

Cheers!

1

Ho avuto un problema simile con Xcode 7.3.1.

Si è rivelato correlato al modo in cui sono stati configurati i pacchetti del modello di dati.

Ho scoperto che c'era un pacchetto modello incorporato nidificato all'interno di un altro. Supponiamo che un modello di dati di livello superiore denominato FolderNodes.xcdatamodeld contenga un altro con esattamente lo stesso nome ... FolderNodes.xcdatamodeld. Inside FolderNodes.xcdatamodeld è il file dei contenuti che contiene le informazioni del modello.

La soluzione per me era trascinare il pacchetto incorporato FolderNodes.xcdatamodeld (numero 2) nel progetto Xcode e NON nella sua cartella di chiusura.

Apple utilizza il pacchetto per il controllo delle versioni ma penso che la logica associata allo spostamento del file del modello di dati interrompa in qualche modo il pacchetto originale creando un involucro ridondante.

0

Accertarsi che lo Version Editor non sia attivo.

Avendo il Version Editor aprire risultati nel codice xml da visualizzare al posto del Data Model. Non sarà inoltre possibile scegliere Data Model nel menu di scelta rapida del file xcdatamodeld all'interno di Project Navigator.

2

Sono stato vittima di questo problema oggi su Xcode8.

Ho risolto il problema semplicemente posizionando il file xcdatamodeld all'esterno di qualsiasi gruppo nella finestra di navigazione Progetto (riquadro di sinistra). Non appena lo metto in un gruppo, non posso più aprire il piccolo.

+0

ha funzionato per me pure. Ciò che è frustrante è che il problema si verifica anche per i file appena creati. – charles

0

Accade anche su XCode 8.3.

Per me, spostare il file fisico in una cartella diversa, quindi eliminare il riferimento originale, quindi aggiungerlo nuovamente nello stesso punto e stabilire nuovamente il riferimento fa il lavoro.