Ошибка в этом назначении не является проблемой Core Data, это чистый Swift. Вы объявили descrip
как String
, но пытаетесь присвоить значение String?
. В Swift это не законно - вы должны развернуть необязательный элемент, прежде чем назначать его необязательному. Было бы то же самое, если бы вы не использовали Core Data. Например, это приведет к той же ошибке:
let foo: String? = "hello"
let bar: String = foo
Различия между моделью данных и сгенерированным кодом происходят потому, что опции Swift и опции Core Data - совершенно разные вещи. Core Data заботится только о том, является ли что-то необязательным при сохранении изменений. Swift все время заботится о том, является ли что-то необязательным. Это другое, потому что Core Data существовала задолго до того, как появился Swift, поэтому они не всегда совпадают с тем, что ожидает Swift.