NSFetchRequest as entityName给出错误"使用未声明的类型"

时间:2016-01-11 13:24:27

标签: swift entity nsfetchrequest

我在Swift 2.1和Xcode 7.2中使用Core数据 这段代码给了我一个无法找到实体名称的错误。由于[公司]不起作用。我有一个具有此名称的实体。

    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)")
    }

2 个答案:

答案 0 :(得分:27)

添加到文件头:

import CoreData

答案 1 :(得分:1)

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

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