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

Pla*_*erb 8 xcode core-data ios swift3 xcode8

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设计的,但是自我发布之后又发生了另一个修改,所以我猜测过去2个月内Swift的其他一些变化导致了这个错误.

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

小智 11

别忘import CoreData了你的子类


Lei*_*niz 8

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


Pla*_*erb 5

突出显示数据模型,转到 Editor -> Create NSManagedObject Subclass...

这解决了错误


Mar*_*ong 5

发生这种情况的原因可能是Xcode 无法确定的路径,因此.xcdatamodel在清理项目时会看到一个相关的错误。当这个错误发生在我的一个项目更改名称.xcdatamodel

解决方案涉及以下内容:

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


Lau*_*sac 5

就我而言,Xcode没有找到自动生成的类,就像这样:

//
//  Teste+CoreDataClass.swift
//  
//
//  Created by Laura Corssac on 2/2/20.
//
//  This file was automatically generated and should not be edited.
//

import Foundation
import CoreData

@objc(Teste)
public class Teste: NSManagedObject { }

Run Code Online (Sandbox Code Playgroud)

退出Xcode并重新打开后,我的问题就解决了。