如果我已经有一个普通的老班,我是否需要NSManagedObject类?

时间:2018-01-01 21:48:41

标签: core-data swift4 nsmanagedobject

我有一个没有开始使用Core Data的应用程序。现在我正在整合核心数据。

我有一个普通的老课程,在整个应用程序中使用。所以我无法摆脱它,但也不需要。它的属性与Core Data实体属性名称匹配。

是否有必要继承NSManagedObject并将@NSManaged提供给类的属性?在这种情况下,它会增加什么价值?

一个问题是并非所有普通旧类属性都与核心数据实体中的类型完全相同。因此,当从课堂上升到核心数据时,我必须进行转换,反之亦然。

Core Data有什么方法可以进行转换吗?

1 个答案:

答案 0 :(得分:1)

  

是否有必要从NSManagedObject继承并将@NSManaged提供给类的属性?在这种情况下,它会增加什么价值?

是的,这是绝对必要的,因为核心数据仅适用于NSManagedObject的实例或NSManagedObject的子类。

  

一个问题是并非所有普通旧类属性都与核心数据实体中的类型完全相同。因此,当从课堂上升到核心数据时,我必须进行转换,反之亦然。

如果您的属性是符合NSCoding的类型,则可以使其成为核心数据"可转换的"属性,它只是工作。如果它们不是,那么最简单的选择是尝试将NSCoding一致性添加到类型中。如果这不可能,您可以创建NSValueTransformer的自定义子类并配置Core Data以将其用于您的财产。