在 CoreData 中使用 NSManagedObject 子类找不到 xcode8 标头

Posted

技术标签:

【中文标题】在 CoreData 中使用 NSManagedObject 子类找不到 xcode8 标头【英文标题】:xcode8 header not found using NSManagedObject subclass in CoreData 【发布时间】:2017-02-03 12:42:03 【问题描述】:

感谢您的关注:)

我使用的是 xcode 8.2.1,语言是 obj-c。 我只是创建了两个实体(照片和摄影师),在我做了editor - create NSManagedObject Subclass 之后,生成的文件出现了错误。

一个在Photo+CoreDataClass.m 中说“找不到Photographer.h 文件”。

另一个是在Photographer+CoreDataClass.m 中的“找不到Photo.h 文件”行。

所有生成的文件是:

Photographer+CoreDataClass.h/m,
Photo+CoreDataClass.h/m
Photographer+CoreDataProperties.h/m
Photo+CoreDataProperties.h/m

工具版本最低为 Xcode 7.3,codegen 为 None/Manual

谁能告诉我如何解决这个问题?

Ps,实体的关系是一个摄影师对多张照片,照片对一个摄影师

【问题讨论】:

【参考方案1】:

只需重命名您的文件

Photographer+CoreDataClass.h/m,

Photographer.h/m

Photo+CoreDataClass.h/m

Photo.h/m

然后将其他两个类的属性复制到重命名的类中,然后将其删除。

【讨论】:

感谢您的帮助,但它对我不起作用。而且我发现了一个新问题,我无法将摄影师的密码更改为无/手动,xcode 撤消我的更改并每次都进行类/定义。所以我在生成的代码中总是有一个重复的符号_OBJC_CLASS__$_Photographer。你能告诉我该怎么做吗?【参考方案2】:

在您选择 .xcmod​​eld 文件后,我通过将“模块”设置为“类”部分为空来消除此错误

【讨论】:

谢谢,我已经通过手动更正头文件名修复了。谢谢你的回复!

以上是关于在 CoreData 中使用 NSManagedObject 子类找不到 xcode8 标头的主要内容,如果未能解决你的问题,请参考以下文章

Core Data 获取关系对象

“无法加载 NSManagedObjectModel。nil 是非法的 URL 参数”

删除 NSManagedObject 子类不会取消它的多对多关系

UNIQUE 约束失败:ZTEMPORADA.Z_PK

何时在 iPhone 开发中使用 CoreData

在 TodayExtension 中使用 MagicalRecord (CoreData)