1

我正在编写一个涉及核心数据的程序。我为我的上下文实体创建了一个类变量, 并且我的代码是这样编写的:

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'”

我究竟做错了什么?我怎样才能实现我的目标?

谢谢!

4

1 回答 1

2

尝试let entity = NSEntityDescription.entityForName(EntityNames.User, inManagedObjectContext: self.context)

请注意,我使用self.context的不仅仅是context. 这是在操场上为我建造的。

于 2016-01-27T18:13:25.993 回答