Ios 核心数据-在objective-c项目Xcode 8中将NSManagedObject子类化的正确方法

Ios 核心数据-在objective-c项目Xcode 8中将NSManagedObject子类化的正确方法,ios,objective-c,swift,xcode,core-data,Ios,Objective C,Swift,Xcode,Core Data,今天我刚开始学习如何使用核心数据,在我的objective-c项目中,当我不得不从NSManagedObject子类化时遇到了一个问题。我正在学习斯坦福iOS 7课程(我来自Swift背景,想了解更多关于objective-c) 以下是我迄今为止所做的工作: 弗斯特 创建我的CoreDataModel.xcdatamodeld文件,并像这样配置我的实体 下一个 突出显示CoreDataModel.xcdatamodeld文件后,我转到编辑器并尝试创建NSManagedObject子类 创建了

今天我刚开始学习如何使用
核心数据
,在我的objective-c项目中,当我不得不从
NSManagedObject
子类化时遇到了一个问题。我正在学习斯坦福iOS 7课程(我来自
Swift
背景,想了解更多关于
objective-c
) 以下是我迄今为止所做的工作:

弗斯特 创建我的
CoreDataModel.xcdatamodeld
文件,并像这样配置我的实体

下一个 突出显示
CoreDataModel.xcdatamodeld
文件后,我转到
编辑器
并尝试创建
NSManagedObject
子类

创建了四个Swift文件,包括一个空的桥接头文件
MyProject bridgeing header.h

我有许多编译器错误:

我不明白为什么xcode会为我生成
Swift
文件而不是
objective-c
文件,因为我已经使用
objective-c
作为我的语言进行了配置

我如何配置头文件以使
objective-c
识别我的
Swift
文件,或者有没有办法创建
objective-c
子类文件,例如
.m
.h
文件

重新声明错误可能来自codegen问题

我的驱动数据包含以下文件


非常感谢您的建议。

当您在Project navigator中选择模型时,在File inspector中,您可以选择生成代码的语言:

这里已经介绍了如何生成Swift文件。我的问题涉及其他问题

Xcode现在支持自动生成NSManagedObject子类 在建模工具中。生成的文件放在DerivedData中 并在保存模型后的第一次生成时重建。他们也是 由Xcode索引,因此命令单击引用并快速打开 按文件名工作

有关更多信息,请参阅此

NSManagedObject重新声明无效的解决方案:

对于XCode 8.1,在通过编辑器创建
NSManagedObject
之前,请选择您的实体,转到数据模型检查器,然后在Codegen下选择“手动/无”,如下所示:

然后创建
NSManagedObject
子类

如果您已经创建了
NSManagedObject
子类,请执行以下步骤:

  • 转到当前的.xcdatamodeld,将所有实体Codegen设置为“手动/无”
  • 保存项目,删除派生数据
  • 清理和建设项目
  • 它应该会起作用