Базовые данные: не удалось привести значение типа «MyType_MyType_2» к MyType

Указатель NULL - это тот, который указывает на никуда. Когда вы разыскиваете указатель p, вы говорите «дайте мне данные в месте, хранящемся в« p ». Когда p является нулевым указателем, местоположение, хранящееся в p, является nowhere, вы говорите «Дайте мне данные в месте« нигде ». Очевидно, он не может этого сделать, поэтому он выбрасывает NULL pointer exception.

В общем, это потому, что что-то не было правильно инициализировано.

25
задан Bastian 17 August 2015 в 10:48
поделиться

2 ответа

Когда у меня возникла эта проблема, это было потому, что я забыл установить «класс» для сущности. Вот что я придумал:

  1. Нажмите на файл .xcdatamodelId в панели структуры вашего файла / навигатора проекта (крайний левый).
  2. Выберите объект, с которым у вас возникли проблемы.
  3. На панели «Утилиты» (в крайнем правом углу) найдите значок, похожий на сотовый телефон 1997 года, инспектора моделей данных.
  4. В настройках сущности вы должны увидеть два поля: «Имя» и «Класс» - установите «Класс» с названием используемого вами класса (обычно это то же самое, что и «Имя»).

Вы даже заметите, прежде чем выполнить эти шаги, что «класс» по умолчанию - NSObject, отражающий сообщение об ошибке. Я также нашел несколько программных способов сделать это, но это казалось самым простым / быстрым решением.

Следует отметить, что моя модель написана на языке Swift, поэтому мне пришлось добавить ссылку на функциональную совместимость @objc (Entity), упомянутую @zellb. Но это не должно иметь значения в решении, если вы выполняете эту часть должным образом (и это вызвало бы другую несвязанную ошибку из моего понимания).

38
ответ дан Bourne 17 August 2015 в 10:48
поделиться

просто попробуйте это:

@objc(MyType)
public class MyType: NSManagedObject {
    // your class
}

вместо этого:

class MyType: NSManagedObject {
    // your class
}
5
ответ дан wajih 17 August 2015 в 10:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: