Подкласс Xcode NSManagedObject содержит опции, если они отмечены как необязательные
У меня есть основной объект данных с именем Film, который имеет свойства title и date. Я заметил, что сгенерированный подкласс NSManagedObject содержит необязательные свойства NSManaged, хотя я помечал свойства как необязательные в инспекторе данных ядра.
![введите описание изображения здесь]()
![введите описание изображения здесь]()
Можно ли изменить его вручную как необязательное свойство или лучше ли оставить его как необязательный? Почему?
Ответы
Ответ 1
"Необязательный" означает нечто иное, чем Core Data, чем для Swift.
- Если атрибут Core Data не является необязательным, он должен иметь значение, отличное от нуля, при сохранении изменений. В других случаях Core Data не волнует, является ли атрибут нулевым.
- Если свойство Swift не является необязательным, оно должно иметь значение не-nil в любое время после завершения инициализации.
Создание атрибута Core Data, не являющегося необязательным, не означает, что оно не является необязательным в смысле слова Swift. Именно поэтому сгенерированный код делает эти свойства необязательными - что касается основных данных, он имеет право иметь значения nil, кроме случаев сохранения изменений.
Ответ 2
Это известная проблема. Некоторые люди меняют его на необязательный, без побочных эффектов, я сохраняю его так, как он был создан, и надеюсь на раннее исправление.
Это всегда помогает, если вы сообщите об ошибке Apple, чтобы повысить видимость и приоритет.