У меня возникают трудности с Core Data в Xcode 8 beta 1. Старые приложения будут компилироваться и работать нормально, но все новые приложения компилируются и работают нормально, пока не попытается вставить новый NSManagedObject.Модель базовых данных не отображается в приложении
Первоначально я думал, что это как-то связано с неправильным удалением старого xcdatamodel и переделкой другого, но после создания совершенно нового приложения и создания простой сущности «A» я не могу создать объект класса A на во время выполнения.
Я попытался с помощью let a = A(context: myMOC)
, который возвращает ошибку:
An NSManagedObject of class 'MyApp.A' must have a valid NSEntityDescription.
Попытка старого let a = NSEntityDescription.insertNewObject(forEntityName: "A", into: context) as! A
возвращает ошибку:
Could not cast value of type 'NSManagedObject_A_' (0x7fd114626f80) to 'MyApp.A' (0x10d2fdf28).
Я проверил мое xcdatamodel десяток раз, чтобы убедиться, я прописана все правильно, и создали новый проект для проверки, чтобы убедиться, что я не делал никаких ошибок при настройке компакт-диска. Мысли?
UPDATE: Содержание xcdatamodel пакета являются это:
<?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: Печать объектов в managedObjectModel, в показывает, что правильная модель загружается. Тем не менее я не могу получить NSManagedObject для инициализации в любом новом проекте.
Вторая ошибка, которую вы указали, - это то, что я ожидал бы, если пользовательское имя класса/модуль не будет правильно заполнено в модели данных. Вы подтвердили, что они верны? –
Я проверил несколько раз. Я тестировал каждый объект, который у меня есть, и получаю те же ошибки. – jjatie
Пожалуйста, добавьте содержимое XML вашей модели данных в Q. Вы найдете его внутри пакета xcdatamodel. Альтернативно добавьте снимок экрана редактора модели. –