Mam problemy z danymi podstawowymi w Xcode 8 beta 1. Stare aplikacje będą się kompilować i działać poprawnie, ale wszystkie nowe aplikacje będą kompilować i działać poprawnie, dopóki nie spróbują wstawić nowy obiekt NSManagedObject.Model Core Data nie pojawia się w aplikacji
Początkowo myślałem, że ma to coś wspólnego z niepoprawnym usunięciem starego xcdatamodelu i przerobieniem innego, ale po zrobieniu zupełnie nowej aplikacji i stworzeniu prostego Entity "A", nie jestem w stanie stworzyć obiektu klasy A w środowisko wykonawcze.
Próbowałem, używając let a = A(context: myMOC)
która zwraca błąd:
An NSManagedObject of class 'MyApp.A' must have a valid NSEntityDescription.
Próbując starą let a = NSEntityDescription.insertNewObject(forEntityName: "A", into: context) as! A
zwraca błąd:
Could not cast value of type 'NSManagedObject_A_' (0x7fd114626f80) to 'MyApp.A' (0x10d2fdf28).
Sprawdziłem mój xcdatamodel kilkanaście razy, aby upewnić się, że zostały napisane wszystko poprawnie i utworzyłem nowy projekt do przetestowania, aby upewnić się, że nie popełniłem żadnych błędów podczas konfigurowania dysku CD. Myśli?
UPDATE: Zawartość opakowania xcdatamodel są to:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<model type="com.apple.IDECoreDataModeler.DataModel" documentVersion="1.0" lastSavedToolsVersion="11147.23" systemVersion="16A201w" minimumToolsVersion="Automatic" sourceLanguage="Swift" userDefinedModelVersionIdentifier="">
<entity name="Coordinate" syncable="YES" codeGenerationType="class">
<attribute name="latitude" optional="YES" attributeType="Double" defaultValueString="0.0" usesScalarValueType="YES" syncable="YES"/>
<attribute name="longitude" optional="YES" attributeType="Double" defaultValueString="0.0" usesScalarValueType="YES" syncable="YES"/>
<relationship name="route" optional="YES" maxCount="1" deletionRule="Nullify" destinationEntity="Route" inverseName="coordinates" inverseEntity="Route" syncable="YES"/>
</entity>
<entity name="Route" syncable="YES" codeGenerationType="class">
<attribute name="uuid" optional="YES" attributeType="String" syncable="YES"/>
<relationship name="coordinates" optional="YES" toMany="YES" deletionRule="Nullify" ordered="YES" destinationEntity="Coordinate" inverseName="route" inverseEntity="Coordinate" syncable="YES"/>
</entity>
<elements>
<element name="Route" positionX="-45" positionY="0" width="128" height="75"/>
<element name="Coordinate" positionX="-18" positionY="27" width="128" height="90"/>
</elements>
</model>
UPDATE 2: Drukowanie jednostek managedObjectModel, ukazuje, że poprawny model jest załadowany. Nadal nie mogę uzyskać obiektu NSManagedObject do zainicjowania w dowolnym nowym projekcie.
Drugi wymieniony błąd jest tym, czego oczekiwałbym, gdyby niestandardowa nazwa/moduł klasy nie został poprawnie wypełniony w modelu danych. Czy zweryfikowałeś, że są one poprawne? –
Zweryfikowałem wiele razy. Przetestowałem każdy podmiot, który posiadam i otrzymuję te same błędy. – jjatie
Dodaj zawartość pliku XML swojego modelu danych do pliku Q. Znajdziesz go w pakiecie xcdatamodel. Możesz też dodać zrzut ekranu edytora modeli. –