延迟加载变量错误
Lazy loading variable error
我正在编写一个涉及核心数据的程序。我为我的 context 和 entity 创建了一个 class 变量,并且我的代码是这样写的:
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"
}
}
到目前为止一切正常,但我想做的是“lazy”加载 userEntity
像这样:
lazy var userEntity : NSEntityDescription = {
let entity = NSEntityDescription.entityForName(EntityNames.User, inManagedObjectContext: context)
return entity!
}()
但是当我这样做时,我得到一个错误:"Instance member 'context' cannot be used on type 'Persistency Manager' "
我做错了什么?我怎样才能实现我的目标?
谢谢!
尝试let entity = NSEntityDescription.entityForName(EntityNames.User, inManagedObjectContext: self.context)
请注意,我使用的是 self.context
而不是 context
。这是在操场上为我建造的。
我正在编写一个涉及核心数据的程序。我为我的 context 和 entity 创建了一个 class 变量,并且我的代码是这样写的:
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"
}
}
到目前为止一切正常,但我想做的是“lazy”加载 userEntity
像这样:
lazy var userEntity : NSEntityDescription = {
let entity = NSEntityDescription.entityForName(EntityNames.User, inManagedObjectContext: context)
return entity!
}()
但是当我这样做时,我得到一个错误:"Instance member 'context' cannot be used on type 'Persistency Manager' "
我做错了什么?我怎样才能实现我的目标?
谢谢!
尝试let entity = NSEntityDescription.entityForName(EntityNames.User, inManagedObjectContext: self.context)
请注意,我使用的是 self.context
而不是 context
。这是在操场上为我建造的。