【发布时间】:2017-01-30 04:58:09
【问题描述】:
我正在 Udacity 上的 CoreData 项目上工作,并且在实现 fetchedResultsController 时遇到了困难。我试图用惰性变量实例化 fetchedResultsController 但它提示我“实例成员上下文不能用于类型'ViewController'。我的代码如下:
//AppDelegate
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
let stack = CoreDataStack(modelName: "Model")
...
}
//ViewController
class ViewController: UIViewController, UICollectionViewDataSource, UICollectionViewDelegate, MKMapViewDelegate{
lazy var context: NSManagedObjectContext = {
let appDelegate = UIApplication.shared.delegate as! AppDelegate
return appDelegate.stack!.context
}()
lazy var fetchedResultsController: NSFetchedResultsController<NSFetchRequestResult> = {
let fetchedRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "Photo")
fetchedRequest.sortDescriptors = []
return NSFetchedResultsController(fetchRequest: fetchedRequest, managedObjectContext: context, sectionNameKeyPath: nil, cacheName: nil)
}()
这样做会在 fetchedResultsController 中的“上下文”处给我一个错误行,指示:
实例成员“context”不能用于类型“ViewController”
我做错了什么吗?任何建议都非常感谢,谢谢!
【问题讨论】: