延迟加载变量错误

时间:2016-01-27 17:59:24

标签: swift core-data computed-properties

我正在编写一个涉及核心数据的程序。我为 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' "

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

谢谢!

1 个答案:

答案 0 :(得分:2)

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

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