Questo post mi ha aiutato molto a risolvere questo problema. Personalmente lo considero un bug Xcode. Bug o no questa è una situazione enorme di uova e galline.
Mi sono imbattuto in questo:
- Creato un nuovo progetto utilizzando Core Data
- generato il
NSManagedObject
sottoclasse + estensione (mentre codegen: ClassDefinition
)
- sbaglio ho salvato le classi generate nella cartella errata
- Ho cancellato i file generati
- Ri-generato nella cartella desiderata
- - Xcode
used twice
errori
Come altri hanno già scritto ho continuato a pulire il mio build (e clean build folder
), ma che non ha mai risolto il problema di costruzione.
Ho finalmente capito se in origine hai creato le tue classi NSManagedObject
con codegen: ClassDefinition
, come ho fatto senza sapere che sei bloccato per il problema dell'uovo e della gallina.
Ho quindi eliminato le classi generate automaticamente pensando Ho dovuto rigenerare, così ho fatto. Una volta rigenerato, otterrei nuovamente l'errore di build used twice
. Sono passato manualmente allo ../DerivedSources/CoreDataGenerated/Model/..
e ho eliminato i duplicati . Ancora una volta, ho rigenerato pensando che avrei avuto solo 1 copia (nel mio progetto) ma ho sbagliato. Se codegen: ClassDefinition
è stato impostato in origine, Xcode continuerà a creare le classi + estensioni auto-generated
e le inserirà nella cartella sepolta ../DerivedSources/CoreDataGenerated/Model/..
. Ho ripetuto questo pollo e l'uovo un paio di volte prima di accendere.
In seguito mi sono reso conto che in effetti è necessario contrassegnare lo codegen: Manual/None
per ripristinare la sincronizzazione dei file auto-generati in ../DerivedSources/CoreDataGenerated/Model/..
e nel progetto se ce ne sono ancora.
Fare attenzione impostazione codegen: Manual/None
, per me è stato un po 'complicato perché codegen: Manual/None
non bastone. Ho dovuto fare clic avanti e indietro tra le entità più volte per controllare doppio/triplo ogni entità è stata impostata su codegen: Manual/None
. Quindi generare automaticamente i file.. A questo punto la tua unica copia dei file generati automaticamente dovrebbe essere nel tuo progetto e non in ../DerivedSources/CoreDataGenerated/Model/..
.
Infine, penso che questo sia un errore perché se si specifica codegen: Manual/None
non mi aspetto che Xcode generi automaticamente file, eppure lo fa e li inserisce nel progetto Più confusione se la tua impostazione è codegen: ClassDefinition
, chi diavolo sa che Xcode metterà i file in una directory nascosta, ma è disponibile per l'uso nel tuo progetto. Il mio manzo con questo è che i file generati automaticamente non sono controllati dalla fonte e se cambio computer devo sapere di generarli automaticamente sulla nuova stazione.
Spero che questo aiuti qualcun altro!
Cheers!
provare a cancellare i dati derivati, Xcode -> File -> Impostazioni progetto. –
@AlvinVarghese Acceso Ho detto che nel mio post la cancellazione dura non funziona! Grazie – Ludovic
Controlla la tua directory di progetto verifica che '' 'Station + CoreDataProperties.swift''' non esista due volte. –