Ios 为什么我会得到一个类没有的错误';如果NSManagedObject属性明显存在,则它不具有NSManagedObject属性?

Ios 为什么我会得到一个类没有的错误';如果NSManagedObject属性明显存在,则它不具有NSManagedObject属性?,ios,core-data,swift,nsfetchedresultscontroller,nsmanagedobjectcontext,Ios,Core Data,Swift,Nsfetchedresultscontroller,Nsmanagedobjectcontext,我有一个UIViewController子类,MyViewController,它有一个nsfetchedresultscoontroller和一个NSManagedObjectContext。但是当我去创建NSFetchedResultsController时,它说我在MyViewController上没有managedObjectContext属性 var managedObjectContext: NSManagedObjectContext! var fetchedResultsCont

我有一个
UIViewController
子类,
MyViewController
,它有一个
nsfetchedresultscoontroller
和一个
NSManagedObjectContext
。但是当我去创建
NSFetchedResultsController
时,它说我在
MyViewController
上没有managedObjectContext属性

var managedObjectContext: NSManagedObjectContext!
var fetchedResultsController: NSFetchedResultsController = {
    let fetchRequest = NSFetchRequest()
    let entity = NSEntityDescription.entityForName("Post", inManagedObjectContext: self.managedObjectContext)
    fetchRequest.entity = entity
    fetchRequest.fetchBatchSize = 50
}()

我不是很清楚在它前面声明了managedObjectContext变量吗?我做错了什么?

属性的初始值设定项不能引用同一个属性中的其他属性 类,除非将其声明为惰性计算属性

您还忘记了从闭包返回获取的结果控制器

var managedObjectContext: NSManagedObjectContext!
lazy var fetchedResultsController: NSFetchedResultsController = {
    let fetchRequest = NSFetchRequest()
    let entity = NSEntityDescription.entityForName("Post", inManagedObjectContext: self.managedObjectContext)
    fetchRequest.entity = entity
    fetchRequest.fetchBatchSize = 50
    let fetchedResultsController = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: self.managedObjectContext, sectionNameKeyPath: nil, cacheName: nil)
    return fetchedResultsController
    }()

惰性变量的差异从根本上会产生什么影响?@DougSmith:惰性变量在第一次访问时初始化,而不是在创建类实例时初始化。但这很好,使用默认Xcode模板创建的核心数据应用程序也使用相同的模式。