Swift 构建 CoreData,语义问题

Posted

技术标签:

【中文标题】Swift 构建 CoreData,语义问题【英文标题】:Swift Building CoreData, Semantic Issue 【发布时间】:2015-09-12 21:11:52 【问题描述】:

我有一个 Swift - ObjectiveC/C++ 项目,一切正常,直到我添加了 CoreData,现在每次我修改一些东西,它都会抛出一个错误:

/.../DerivedData/.../Intermediates/.build/Debug-iphonesimulator/.build/DerivedSources/-Swift.h:136:26:找不到“NSManagedObject”的接口声明,“”的超类;你的意思是“NSManagedObjectModel”吗?

/.../DerivedData/.../Intermediates/.build/Debug-iphonesimulator/.build/DerivedSources/-Swift.h:136:26:尝试使用前向类“NSManagedObjectModel”作为“的超类” '

当然,这不是真正的问题,我已经尝试删除 DerivedData 上的所有内容,但问题仍然存在。

修复方法是在 -Swift.h 文件的标题中添加 #import ,然后错误就消失了。直到我修改我的代码。

有人知道这个问题的真正解决方案吗?每次编译时都必须包含该库,这很烦人。

Xcode 版本为:版本 6.3.2 (6D2105)

编辑:问题出现在Xcode创建的*-Swift.h文件中...

Edit2:我不得不重写整个类以避免使用ObjectiveC(第三方库除外)并且问题消失了,所以我认为它与ObjectiveC如何尝试处理基于Swift的核心数据类有关。

现在我没有问题,但有一天可以帮助某人

【问题讨论】:

除了重写整个项目之外,您是否找到了解决方案/设置?因为我也面临同样的问题。就我而言,我没有创建自定义类,而是使用了自动生成的 NSManagedObjectModel。 不,除了我在问题中编辑的答案。它仍然可能与依赖关系有关...:/ 【参考方案1】:

这基本上意味着你需要导入Coredata

#import <CoreData/CoreData.h>

【讨论】:

它被包括在内...最后,我只是用纯 swift 重写了应用程序:O

以上是关于Swift 构建 CoreData,语义问题的主要内容,如果未能解决你的问题,请参考以下文章

CoreData学习:Core Data Stack(Swift)

CoreData NSPredicate

在 Xcode 10.2 上的 Swift4.2 中插入 NSManagedObject 后,我​​会立即收到 Xcode 构建错误

Swift 3 - 表 VC(使用 coredata)和细节 VC 的故事板设计 *从默认信息的细节 VC 开始*

Swift 3 核心数据“实体”错误:`使用未声明的类型`

从 TableView 中获取数据(CoreData)