问题描述
在配置Core Data实体时,想要让实体的字段改为非可选的状态。

在配置NSManagedObject Subclass后,发现字段是可选的状态。

三个字段都是可选的状态。

这也就导致在SwiftUI中仍然会被认为是可选字段,要求使用”??”进行合并以提供默认值,或者解包。

修改+CoreDataProperties文件字段
目前考虑的解决方案是,实体名+CoreDataProperties.swift文件的字段修改为非可选类型。

但是因为牵扯的代码太多,修改为非可选类型有些问题,导致Xcode无法显示具体的错误代码。

以至于,只能告诉我预览报错。
总结
如果想要手动修改为可选字段,可能增加后期的维护成本,以及未知的报错。
因此不在此深究,这个问题可能是一个BUG,触发的条件可能是第一个Core Data实体或者修改多次后触发,目前没有复现。
网络上的其他文章已经整理到相关文章中,有兴趣的可以深入研究一下。
问题搁置,重新按照NSManagedObject Subclass生成的可选字段进行开发。
相关文章
1、Xcode NSManagedObject subclass contains optionals when they are marked as non-optional:https://stackoverflow.com/questions/33548350/xcode-nsmanagedobject-subclass-contains-optionals-when-they-are-marked-as-non-op
2、Core Data使用NSManagedObject Subclass管理数据:https://fangjunyu.com/2025/03/27/core-data%e4%bd%bf%e7%94%a8nsmanagedobject-subclass%e7%ae%a1%e7%90%86%e6%95%b0%e6%8d%ae/
3、How to handle non-optional Core Data properties in Swift:https://tanaschita.com/20221114-how-to-handle-non-optional-core-data-values-in-swift/
4、How to more gracefully handle non-optional Core Data properties in Swift:https://www.jessesquires.com/blog/2022/01/26/core-data-optionals/
5、Clash of the Optionals:https://www.atomicbird.com/blog/clash-of-the-optionals/