我有一个名为Film的核心数据实体,它具有属性标题和日期。我注意到生成的NSManagedObject子类包含可选的NSManaged属性,即使我在核心数据检查器中将属性标记为非可选。Xcode NSManagedObject的子类包含可选项,当它们被标记为非可选
可以我可以手动更改为非可选属性或者是一个更好的选择,把它作为可选?为什么?
我有一个名为Film的核心数据实体,它具有属性标题和日期。我注意到生成的NSManagedObject子类包含可选的NSManaged属性,即使我在核心数据检查器中将属性标记为非可选。Xcode NSManagedObject的子类包含可选项,当它们被标记为非可选
可以我可以手动更改为非可选属性或者是一个更好的选择,把它作为可选?为什么?
“可选”意味着与Core Data不同的是Swift。
使Core Data属性为非可选项并不意味着它在Swift中是非可选的。这就是为什么生成的代码使得这些属性成为可选的 - 就核心数据而言,除了保存更改之外,具有零值是合法的。
这是一个已知问题。有些人把它变成非可选的,没有不良影响,我保持它的生成方式并希望早日修复。
如果您向Apple提交错误以提高可视性和优先级,它总是有帮助的。
确保至少在'override func awakeFromInsert()'中分配任何非可选变量。 – adamek