2017-01-30 32 views
0

我正在研究Udacity上的CoreData項目,並且難以實現fetchedResultsController。我試圖實例fetchedResultsController帶有水上變種,但它提示我「實例成員背景不能在類型‘的ViewController’使用我的代碼是這樣的:Swift fetchResultsController:實例成員不能用於'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表示:

實例成員‘?!方面的ViewController‘

有什麼我做錯了任何意見是非常讚賞’不能在使用類型’,感謝

回答

2

你需要明確使用self在慵懶的屬性指的是context時:

return NSFetchedResultsController(fetchRequest: fetchedRequest, managedObjectContext: self.context, sectionNameKeyPath: nil, cacheName: nil) 
+0

天哪,你解決了我的2避免受挫,與看起來那麼微不足道的東西。謝謝! – Koh

相關問題