我正在编写一个涉及核心数据的程序。我为 context 和 entity 创建了一个类变量,并将我的代码写成:
class PersistencyManager {
var context : NSManagedObjectContext{
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let localContext = appDelegate.managedObjectContext
return localContext
}
var userEntity : NSEntityDescription {
let entity = NSEntityDescription.entityForName(EntityNames.User, inManagedObjectContext: context)
return entity!
}
struct EntityNames {
private static let User = "User"
private static let Category = "Category"
}
}
到目前为止所做的一切都很好,但我想做的是" 懒惰"加载userEntity
像这样:
lazy var userEntity : NSEntityDescription = {
let entity = NSEntityDescription.entityForName(EntityNames.User, inManagedObjectContext: context)
return entity!
}()
但是当我这样做时,我收到一个错误: "实例成员' context'不能用于类型' Persistency Manager' "
我做错了什么?我怎样才能实现目标?
谢谢!
答案 0 :(得分:2)
尝试let entity = NSEntityDescription.entityForName(EntityNames.User, inManagedObjectContext: self.context)
注意我使用的是self.context
,而不仅仅是context
。这是在操场上为我建造的。