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

问题描述 投票:5回答:6

Use of undeclared type 'Transcription'

我正在关注Swift 3中的核心数据这个简单的教程(https://learnappdevelopment.com/uncategorized/how-to-use-core-data-in-ios-10-swift-3/

我在线上得到了上述错误:let fetchRequest: NSFetchRequest<Transcription> = Transcription.fetchRequest()

我仔细检查并在我的.xcdatamodeld文件中正确拼写了Entity“Transcription”

这个教程是为Swift 3设计的,但是自我发布之后又发生了另一个修改,所以我猜测在过去的两个月中Swift的其他一些变化导致了这个错误。

我是Core Data的新手,所以我不知道如何调试它。我非常感谢解决方案!

ios xcode core-data swift3 xcode8
6个回答
9
投票

别忘了import CoreData到你的子类


4
投票

突出显示数据模型,转到编辑器 - >创建NSManagedObject子类...

这解决了错误


4
投票

我遇到了同样的错误,我习惯了Xcode 8.2.1。我清理了项目,关闭了Xcode并重新打开它,构建后错误消除了。


2
投票

这可能是因为Xcode无法确定.xcdatamodel的路径,清理项目时可以看到相关的错误。更改.xcdatamodel的名称时,我的项目之一发生此错误。

决议涉及以下内容:

  • 转到产品 - >清洁(Shift-Cmd-K)
  • 如果错误仍然存​​在 按住Ctrl键单击(右键单击)有问题的.xcdatamodel - >在Finder中显示 拖动.xcdatamodel导入项目,应创建一个新条目 删除以前的.xcdatamodel条目。
  • 构建(Cmd-B)以确认修复

1
投票

使用Xcode版本8.2 beta(8C30a),当我添加或修改实体时,我得到相同的错误。在数据模型检查器中,将Codegen选项更改回Manual / None,就好像我将自己生成动态类一样。保存,然后更改回类别/扩展,它似乎工作。 (我也尝试使用Option-Clean清理项目,重新启动XCode,但能够轻松地重现它。)希望升级8.3 beta修复此错误。


0
投票

No. 1)我们创建子类,转到Editor - > Create NSManagedObject Subclass ...然后将子类文件替换为同一项目的文件夹:

Creating NSManagedObject

2)然后删除derivedData中的文件 - 在Xcode中 - >首选项:

Deleting derivedData

3)然后删除对NSManagedObject Subclass的旧文件的引用,因为它们自动创建系统:

enter image description here


0
投票

对我来说,我必须从我的.xcdatamodeld文件中删除我的实体,该实体在我的案例“转录”中给出了错误,然后再手动重新添加它。

© www.soinside.com 2019 - 2024. All rights reserved.