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

问题描述 投票:0回答:1

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

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

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

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

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

core-data swift4 nsmanagedobject
1个回答
1
投票

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

是的,这是绝对必要的,因为Core Data仅适用于NSManagedObject的实例或NSManagedObject的子类。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.