Używam Swift na Xcode 6 z CoreData
.Problemy z rzutowaniem Swift i CoreData w teście vs bez testu
Przeczytałem informacje o wersji i widziałem ten numer issue o konieczności oznaczenia podstawowego modelu danych nazwą modułu (nazwą aplikacji), aby można było przesyłać do modelu w czasie wykonywania model NSManagedObject
.
Kiedy to zrobię, mogę uruchomić aplikację poprawnie (dobrze!). Jednakże, mój problem jest, gdy próbuję testu że sam kod, test będzie zawsze upaść, gdy obsada dzieje z Swift dynamic cast failed
błąd (źle :(). To sprawia, że trudno przetestować aplikację.
Czy ? jakiś wpływ na nazwę modułu używamy, gdy aplikacja jest zbudowany do badania w porównaniu z systemem
Dzięki z góry za wszelkie wskazówki ...
Kontynuacja:
to nie jest idealny: Jak wspomniano powyżej, Aby Swift mógł używać Core D model ata, musisz udekorować nazwę klasy nazwą swojej aplikacji. To działa znaleźć do budowania aplikacji, ale testy działają pod inną nazwą aplikacji! Oznacza to, że musisz przejść do programisty modeli danych i zmienić nazwę tej klasy z myAppname.myEntity
na myAppnameTests.myEntity
, zanim będziesz mógł używać tych encji według nazwy, gdy są używane lub wywoływane z testu.
Spróbuj udekorować nazwę klasy za pomocą @objc (MyClassName). Spowoduje to ominięcie zwykłego mangerowania nazwy. Wtedy nie powinieneś martwić się o nazwę modułu w modelu danych. –
Jeśli napiszę moje klasy jednostek w szybkim tempie, a następnie udekoruj je za pomocą 'objc (xxx)' - otrzymuję błąd rzutu dynamicznego za każdym razem, gdy spróbuję użyć encji o tej nazwie w innym szybkim kodzie ... Frustrowanie ... –
Spróbuj this: http://stackoverflow.com/a/26568813/438063 – Lucien