核心数据中是不是使用了可选属性? [复制]

Posted

技术标签:

【中文标题】核心数据中是不是使用了可选属性? [复制]【英文标题】:Is optional attribute used in Core Data? [duplicate]核心数据中是否使用了可选属性? [复制] 【发布时间】:2018-04-06 08:10:21 【问题描述】:

我设置了一个属性,它不是可选的,但是当读取它的值时,它仍然返回一个可选变量,为什么?

【问题讨论】:

【参考方案1】:

您在模型中设置的内容可能与您在代码中的内容不直接对应。考虑到该模型适用于多种平台(ios、OSX)和多种语言(Swift、Objective-C)。

然后在您使用 Swift 的情况下自动生成您的类。但它们是托管对象的子类,它们是NSObject 子类,所以在底部你在objectiveC 上。如果我没记错的话,所有这些属性都将被强制解包,这仍然意味着它们在打印时是可选的。

ObjectiveC 的构造函数系统略有不同,在某些时候,对象中的每个值/属性都将为空。由于 CoreData 的工作方式,保留强制展开的值可能是有意义的。

长话短说:这两者的联系可能没有你想象的那么紧密。但是您不必担心,如果这破坏了您的任何功能/代码,您应该直接提出问题。

【讨论】:

以上是关于核心数据中是不是使用了可选属性? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

Swift核心数据:设置可选属性值时为啥需要解包?

如果没有可选关系属性的值,核心数据不会加载?!?迅速

将属性更改为不再是瞬态的 - 我可以通过轻量级核心数据迁移来做到这一点吗?

如何检查是不是设置了可选功能参数

如何添加和查看核心模型关系的数据

如何测试是不是提供了可选参数?