如果我已经有一个普通的旧 class,我还需要 NSManagedObject classes 吗?

Do I need NSManagedObject classes if I already have a plain old class?

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

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

是否需要继承NSManagedObject并提供@NSManaged到class的属性?在这种情况下,这增加了什么价值?

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

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

Is it necessary to inherit from NSManagedObject and supply @NSManaged to the properties of the class? What value does that add in this case?

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

One problem is that not all of the plain old class properties are exactly the same types as those in the Core Data Entity. So I have to a transformation when going from the class to Core Data and vice versa.

如果您的属性是符合 NSCoding 的类型,您可以将它们设为核心数据 "transformable" 属性,它就可以正常工作。如果不是,最简单的选择是尝试向类型添加 NSCoding 一致性。如果那不可能,您可以创建 NSValueTransformer 的自定义子类并配置 Core Data 以将其用于您的 属性.