NSFetchRequest as entityName 给出错误 "use of undeclared type"

NSFetchRequest as entityName gives error "use of undeclared type"

我在 Swift 2.1 和 Xcode 7.2 中使用核心数据 此代码给我一个无法找到实体 name.This 的错误,因为 [Company] 没有 work.I 具有此名称的实体。

    let fetchRequest = NSFetchRequest(entityName: "Company")

    do {
        var result = try self.moc.executeFetchRequest(fetchRequest) as! [Company]
        if (result.count > 0){

        companyName?.stringValue = result[0].valueForKeyPath("name") as! String

        // success ...
        }
        else{

        }
    } catch let error as NSError {
        // failure
        print("Fetch failed: \(error.localizedDescription)")
    }

您说您的模型中有一个名为 "Company" 的实体。好的,但是您是否有一个实际的 NSManagedObject class,名为 Company(即,class Company: NSManagedObject { ... }),是您在 Xcode 中的托管对象模型编辑器中创建的?这不是自动的。如果没有在某处声明实际的 class,它将是一个 "undefined type",因为实体名称只是一个字符串,否则可以在您的模型中查找内容。

您的代码的其余部分通过 valueForKeyPath() 访问属性这一事实强烈表明在任何地方都没有实际的 class Company: NSManagedObject

添加到文件头:

import CoreData