是否不需要在 Swift 3 中继承 NSManagedObject ?

Posted

技术标签:

【中文标题】是否不需要在 Swift 3 中继承 NSManagedObject ?【英文标题】:Is it unnecessary to subclass NSManagedObject in Swift 3? 【发布时间】:2016-11-02 07:51:22 【问题描述】:

我以前知道您必须“编辑器”>“创建 NSManagedObject 子类”才能在您的类中引用核心数据的实体名称。但是,在创建这些自动子类后,我遇到了几个错误。

我的项目运行良好没有这些子类文件,那么 Swift 3 不再需要子类化来引用实体了吗?

【问题讨论】:

【参考方案1】:

在 Swift 3 中,您无需手动为 NSManagedObjects 创建子类。

默认情况下,它们是自动创建的。但是,如果您想手动创建文件,请将 Codegen 设置为 Manual/None 在您的 testCD.xcdatamodeld 的实用程序区域中。

来自苹果的What's new in Core Data:

Xcode 自动子类生成

Xcode 现在支持在建模工具中自动生成 NSManagedObject 子类。在实体检查器中:

Manual/None 是默认的,也是以前的行为;在这种情况下,你 应该实现您自己的子类或使用 NSManagedObject。 Category/Extension 在名为 类名+CoreDataGeneratedProperties。您需要声明/实施 主类(如​​果在 Obj-C 中,通过扩展可以导入的标头 命名为 ClassName.h)。 类定义生成命名为 ClassName+CoreDataClass 的子类文件以及为 Category/Extension 生成的文件。

生成的文件放置在 DerivedData 中,并在模型保存后的第一次构建时重新构建。它们也被 Xcode 索引,因此通过命令单击引用和按文件名快速打开是可行的。

【讨论】:

以上是关于是否不需要在 Swift 3 中继承 NSManagedObject ?的主要内容,如果未能解决你的问题,请参考以下文章

在 Swift 中继承具有自己类型和存储属性的数组

在创建新文件时在Swift中继承Viewcontroller

js中继承

私有成员是不是在 C# 中继承?

JAVA中继承时方法的重载(overload)与重写/覆写(override)

Android中继承AppCompatActivity和直接继承Activity有啥区别呢