2012-08-27 13 views
7

Nel progettare il modello di dati di base in XCode, è possibile generare automaticamente le definizioni NSManagedObject sottoclasse (.m e file .h) daUn modo migliore per ricreare la definizione della classe dopo aver modificato il modello dei dati di base?

  1. Selezione dei Entità
  2. scegliendo "Crea NSManagedObject sottoclassi" da EDITOR menù

dopo che, è possibile aggiungere un sacco di codice in queste classi, che cosa se è necessario modificare il modello di dati impostando un sacco per qualche ragione dopo? Per riflettere questi cambiamenti sul modello di dati, esiste un modo automatico per farlo? o devi fare tutto manualmente.

Attualmente, se provo a ricreare nuovamente questa definizione di classe dal menu EDIT (automaticamente), sostituirà tutti i file correnti. Tutto il codice aggiunto sparirà.

Spero davvero che la versione futura di Xcode possa aggiungere una funzionalità intelligente: l'aggiornamento automatico della definizione di classe predefinita senza perdere il lavoro aggiunto. Forse sono troppo pigro. :)

risposta

6

Stai riscontrando un problema comune. Sei praticamente bloccato con questo modo di creare sottoclassi di oggetti gestiti con Xcode per il momento. Sapendo che, è possibile:

  • design intorno ad esso

    Per i casi semplici, è possibile utilizzare le categorie per aggiungere funzionalità (anche se non di stato) ai vostri NSManagedObject sottoclassi. Il codice nel file della categoria è ovviamente sicuro di essere sovrascritto ogni volta che il modello di dati cambia.

  • Non utilizzare Xcode

    Mogenerator è un ingegnoso strumento progettato per risolvere esattamente questo problema. Crea due classi per ogni entità anziché una, consentendo a Xcode di gestirne una mentre si gestisce l'altra.

0

È possibile creare una classe con nome diverso e incollare i campi generati nella vecchia classe

1

Sembra Apple ha affrontato la questione con XCode 7: ora crea automaticamente l'entità e una categoria di entità con le sue proprietà dei dati di base. Quando si rigenera, aggiorna solo la categoria, lasciando il codice personalizzato nella classe entità illeso. Vedi questo link

Problemi correlati