使用未声明的类型使用CoreData Extension错误

时间:2017-01-17 18:28:14

标签: ios objective-c swift core-data

Swift 2.3 / Xcode 7.3.1

您好我在Core数据中创建一个Entity然后在Editor中创建NSManagedObject类。 (目标 - C)

在此之后我创建了Class并尝试使用Entity作为扩展

    import Foundation

extension EntityTest {


}

但显示错误消息“使用未声明的类型'实体测试'”。在其他实体中正常工作。有人可以向我解释为什么会这样吗?

编辑:问题通过简单的添加“#import”file.h来解决“在桥接标题处暴露给Swift

4 个答案:

答案 0 :(得分:0)

现在,Coredata自动将其实体生成为NSManagedObject。 这似乎是Xcode的一个错误。

因此,要解决此问题,请转到xcdatamodeld文件,选择实体make compile错误,然后选择Xcode右侧的Core Data Inspector。

您可以在“课程”部分找到标题为“Codegen”的投递框。

如果要手动生成NSMsnagedObject文件,请将Codegen设置为Manual / None。

或选择“类定义”。

现在,保存文件(这很重要。),然后清理。

祝你好运。

答案 1 :(得分:0)

您需要确保项目中没有任何* .properties.swift文件。如果您这样做,请删除它们,然后删除实体 - 编辑器>创建上面的NSManagedObject子类步骤

如果你从xCode中删除了* properties.swift文件并且只删除了对它们的引用,那么它们就会被遗留下来。 Xcode仍然可以看到这些文件,它不会创建其他文件,并且它会出错并且错误输出。

答案 2 :(得分:0)

  • 右键单击{Entity-Name} -CoreDataProperties.swift
  • 点击“在Finder中显示”
  • 将{Entity-Name} -CoreDataClass.swift文件拖到项目
  • 请务必取消选中“需要时复制项目”
  • CMD-SHIFT-K清理您的项目
  • CMD-B来构建您的项目

希望这有帮助!

答案 3 :(得分:0)

当您忘记选中“是初始视图控制器”时,可能会发生!