[英]How to subclass UITableViewController with non-optional property
[英]Xcode NSManagedObject subclass contains optionals when they are marked as non-optional
“可选”对 Core Data 的意义不同于对 Swift 的意义。
将 Core Data 属性设为非可选并不意味着它在 Swift 术语中是非可选的。 这就是为什么生成的代码使这些属性成为可选的——就 Core Data 而言,拥有 nil 值是合法的,除非保存更改。
这是一个已知的问题。 有些人将其更改为非可选且没有不利影响,我保持其生成方式并希望早日修复。
如果您向 Apple 提交错误以提高可见性和优先级,这总是有帮助的。
创建 managedobject 类并将实体类类型更改为手动并将这些类添加到您的项目范围。
编辑您的 managedObject 使它们成为非可选的。 这意味着您需要自己维护这个类并在核心数据模型和类中进行任何更改
如果您的数据模型稳定且不会更改,那么您可以使用它。
数据模型检查器中的 Optional 复选框与 Swift 选项无关。 该复选框确定是否需要属性具有值。
如果取消选择属性的可选复选框,则必须为该属性指定一个值,否则保存时会出错。 通过选择 Optional 复选框,您可以在不给属性值的情况下进行保存。 假设您有一个字符串的 description 属性。 如果您选择了 Optional 复选框,您可以将描述留空并仍然保存实体。
这是另一个例子。 假设您有文本字段,让一个人输入他们的家庭、工作和手机号码。 这些电话号码应该是可选属性。 您不希望仅仅为了保存此人的数据而要求某人拥有家庭电话号码、工作电话号码和手机号码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.