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

use*_*590 5 entity nsfetchrequest swift

我正在使用带有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)")
    }
Run Code Online (Sandbox Code Playgroud)

小智 30

添加到文件头:

import CoreData
Run Code Online (Sandbox Code Playgroud)


Jos*_*zzi 1

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

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