Xcode 4, Versione modello dati core - Imposta versione corrente


183

Sono confuso su come eseguire la seguente funzione in Xcode 4 per impostare il modello da utilizzare dopo aver creato un modello con versione.

Design> Modello dati> Imposta versione corrente


15
Vorrei poter votare questo ogni volta che devo fare un nuovo riferimento.
erik,

Risposte:


329
  1. Fai clic sul file .xcdatamodelId di livello superiore (quello che ha le numerose versioni di .xcdatamodel sotto di esso come figli).
  2. Assicurati che il riquadro laterale Utilità sia visibile (in caso contrario fai clic sul terzo pulsante "Visualizza" nella parte superiore destra della finestra).
  3. Nel riquadro Utilità selezionare la finestra di ispezione File (piccola icona di carta in alto a sinistra)
  4. Vedrai "Modello dati core con versione" come gruppo, quindi modifica il menu a discesa "Attuale" nella nuova versione.

2
Fantastico, grazie! Lo stesso riquadro è stato visualizzato anche in Visualizza> Utilità> Impostazioni file
Nate Potter,

mi sto ancora abituando alle modifiche tra Xcode 3 e 4, grazie!
Chris,


15

In Xcode 4, se vedi solo una versione del tuo modello di dati nella sezione "Modeled Core Data Model - Current" della finestra di ispezione dei file quando hai selezionato il tuo file * .xcdatamodeld; oppure hai una seconda versione del tuo file * .xcdatamodel che mostra al di fuori del bundle xcdatamodeld nel navigatore del progetto Xcode, leggi sotto.

Per risolvere questo problema:

1) Rimuovere entrambi i riferimenti * .xcdatamodeld e * .xcdatamodel da Xcode facendo clic con il tasto destro su di essi nel navigatore del progetto e premendo "Elimina".

2) Quando richiesto da Xcode, fare clic su Rimuovi solo riferimenti (molto importante).

3) Riavviare Xcode per una buona misura nel caso in cui ci sia una memorizzazione nella cache.

4) Aggiungere nuovamente il singolo file * .xcdatamodeld che contiene entrambi i file * .xcdatamodel.

Xcode dovrebbe ora riconoscere le relazioni e consentire all'utente di espandere il file * .xcdatamodeld nel navigatore del progetto per mostrare entrambi i file * .xcdatamodel sotto il bundle xcdatamodeld padre, mostrando anche un segno di spunta verde accanto al modello corrente. Ciò dovrebbe anche consentire di selezionare la versione corrente del modello di dati nella finestra di ispezione file invece di mostrare solo una versione.


E così finisce il grattarsi la testa.
Steve Madsen,

Ho accidentalmente cambiato il genitore xcdatamodelid in bundle di applicazioni e questa soluzione ha aiutato!
morph85,

4

Per Xcode 4.2

  1. Fai clic su YourModel.xcdatamodeld

  2. Rendi visibile il riquadro laterale

  3. In "Modello dati core con versione", seleziona la "casella a discesa corrente", seleziona il modello dati.

Ora il segno di spunta verde viene spostato sul modello di dati corrente.


Non c'è niente di simile al "modello dati core con versione" nella "Libreria oggetti". La prima risposta (da Mac_Cain13) è corretta, anche se mi sembra di avere uno strano bug con il mio modello al di fuori del .modeld in Xcode.
StuFF mc,

@StuFFmc - Controlla il mio post qui sotto per risolvere il problema del file xcdatamodel che si trova all'esterno del bundle xcdatamodeld nel navigatore del progetto di Xcode.
Andrew,

2

La ricerca nella "Guida corrente" di Xcode produce una ricetta "Impostazione della versione corrente di un modello a oggetti gestiti" che descrive come eseguire questa operazione ...


1

Un po 'fuori tema, ma se hai raggiunto questa domanda per sapere come creare una prima nuova versione del tuo modello (come ho fatto io): fai clic sul file xcdatamodel >> Menu "Editor" >> Aggiungi versione modello

Ciò avvierà il versionning del modello.



-1

Puoi anche usare il metodo setter da CoraData ...
Fai qualcosa del genere ...

Nel tuo CustomCoreDataManager.m :

#import "ObjectiveRecord.h"

e chiama il metodo init in questo modo

- (instancetype)init {

    self = [super init];

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

    return self;
}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.