在 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】:在您选择 .xcmodeld 文件后,我通过将“模块”设置为“类”部分为空来消除此错误
【讨论】:
谢谢,我已经通过手动更正头文件名修复了。谢谢你的回复!以上是关于在 CoreData 中使用 NSManagedObject 子类找不到 xcode8 标头的主要内容,如果未能解决你的问题,请参考以下文章
“无法加载 NSManagedObjectModel。nil 是非法的 URL 参数”