Указатель NULL
- это тот, который указывает на никуда. Когда вы разыскиваете указатель p
, вы говорите «дайте мне данные в месте, хранящемся в« p ». Когда p
является нулевым указателем, местоположение, хранящееся в p
, является nowhere
, вы говорите «Дайте мне данные в месте« нигде ». Очевидно, он не может этого сделать, поэтому он выбрасывает NULL pointer exception
.
В общем, это потому, что что-то не было правильно инициализировано.
Когда у меня возникла эта проблема, это было потому, что я забыл установить «класс» для сущности. Вот что я придумал:
Вы даже заметите, прежде чем выполнить эти шаги, что «класс» по умолчанию - NSObject, отражающий сообщение об ошибке. Я также нашел несколько программных способов сделать это, но это казалось самым простым / быстрым решением.
Следует отметить, что моя модель написана на языке Swift, поэтому мне пришлось добавить ссылку на функциональную совместимость @objc (Entity), упомянутую @zellb. Но это не должно иметь значения в решении, если вы выполняете эту часть должным образом (и это вызвало бы другую несвязанную ошибку из моего понимания).
просто попробуйте это:
@objc(MyType)
public class MyType: NSManagedObject {
// your class
}
вместо этого:
class MyType: NSManagedObject {
// your class
}