Sto utilizzando Swift su Xcode 6 con CoreData
.Problemi di casting Swift e CoreData in test vs non test
Ho letto le note di rilascio e ho visto questo issue di fare in modo di segnare un modello di dati di base con un nome del modulo (nome dell'applicazione) in modo da poter lanciare un NSManagedObject
al vostro tipo di modello in fase di esecuzione.
Quando eseguo questa operazione, riesco a far funzionare correttamente un'applicazione (buona!). Tuttavia, il mio problema è che quando cerco di prova che lo stesso codice, il test sarà sempre in crash ogni volta che il cast avviene con un Swift dynamic cast failed
errore (male :(). Questo rende difficile per testare la mia applicazione.
Is ? esiste un impatto sul nome del modulo che usiamo quando l'applicazione è costruita per il test contro l'esecuzione
Grazie in anticipo per qualsiasi puntatori ...
Follow up:
Questo non è l'ideale: Come indicato sopra, per consentire a Swift di utilizzare un Core D ata model, devi decorare il nome della classe con il nome della tua app. Questo funziona per la creazione dell'app, ma i test vengono eseguiti con un nome app diverso! Ciò significa che è necessario andare nel modellatore dati e modificare il nome della classe da myAppname.myEntity
a myAppnameTests.myEntity
prima di poter utilizzare tali entità per nome quando utilizzate o richiamate da un test.
Provare a decorare il nome della classe con @objc (MyClassName). Questo eviterà il normale mangling del nome. Quindi non dovresti preoccuparti del nome del modulo nel modello dati. –
Se scrivo le mie classi di entità in swift, quindi le decoriamo usando 'objc (xxx)' - Ricevo l'errore di cast dinamico ogni volta che provo a usare l'entità con quel nome in un altro codice rapido ... Frustrante ... –
Prova questo: http://stackoverflow.com/a/26568813/438063 – Lucien