我有一个 UIViewController
子类 MyViewController
,它有一个 NSFetchedResultsController
和一个 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 变量吗?我做错了什么?
最佳答案
属性的初始值设定项不能引用同一属性中的另一个属性 类除非您将其声明为惰性计算属性。
您还忘记从闭包返回获取的结果 Controller 。
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
}()
关于ios - 为什么我的类明明有 NSManagedObject 属性却出现错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26196815/