我有一个没有开始使用Core Data的应用程序。现在我正在整合核心数据。
我有一个普通的老班,在整个应用程序中使用。所以我无法摆脱它,但也不需要。它的属性与Core Data实体属性名称匹配。
是否有必要继承NSManagedObject
并将@NSManaged
提供给该类的属性?在这种情况下增加了什么价值?
一个问题是并非所有普通旧类属性都与核心数据实体中的类型完全相同。因此,当从类到核心数据时,我必须进行转换,反之亦然。
Core Data有什么方法可以进行转换吗?
是否有必要从NSManagedObject继承并将@NSManaged提供给类的属性?在这种情况下增加了什么价值?
是的,这是绝对必要的,因为Core Data仅适用于NSManagedObject
的实例或NSManagedObject
的子类。
一个问题是并非所有普通旧类属性都与核心数据实体中的类型完全相同。因此,当从类到核心数据时,我必须进行转换,反之亦然。
如果您的属性是符合NSCoding
的类型,那么您可以使它们成为Core Data“可转换”属性,它只会起作用。如果不是,最简单的选择是尝试将NSCoding
一致性添加到类型中。如果这不可能,您可以创建NSValueTransformer
的自定义子类并配置Core Data以将其用于您的属性。