我在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)")
}
答案 0 :(得分:27)
添加到文件头:
import CoreData
答案 1 :(得分:1)
您说您的模型中有一个名为“公司”的实体。好的,但您是否有一个名为NSManagedObject
的实际Company
类(即class Company: NSManagedObject { ... }
),您是在Xcode的托管对象模型编辑器中创建的?这不是自动的。如果没有在某处声明实际的类,它将是一个“未定义的类型”,因为实体名称只是一个字符串,用于在模型中查找内容。
您的代码的其余部分通过valueForKeyPath()
访问属性的事实强烈暗示在任何地方都没有实际的类Company: NSManagedObject
。