0
我的應用程序崩潰,並給我一個致命的錯誤,並不真正告訴我任何事情,所以我不知道會發生什麼。NSFetchedResultsController使用CoreData時發生致命錯誤(嘗試獲取)
這是我的代碼段,給我麻煩。
var controller: NSFetchedResultsController<Item>!
func attemptFetch() {
let fetchRequest: NSFetchRequest<Item> = Item.fetchRequest()
let dateSort = NSSortDescriptor(key: "created", ascending: false)
fetchRequest.sortDescriptors = [dateSort]
let mainController = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: context, sectionNameKeyPath: nil, cacheName: nil)
self.controller = mainController
do {
try mainController.performFetch()
} catch {
let error = error as NSError
print("\(error)")
}
}
它崩潰的
let mainController = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: context, sectionNameKeyPath: nil, cacheName: nil)
和 「上下文」 引用應用程序委託
let ad = UIApplication.shared.delegate as! AppDelegate
let context = ad.persistentContainer.viewContext
的錯誤是:
fatal error: Unresolved error Error Domain=NSCocoaErrorDomain Code=134140 "(null)" UserInfo={sourceModel=() isEditable 1, entities { "Crash on line 70 of the app delegate"
感謝您的幫助
''controller''('NSFetchedResultsController')應該是Apple在Core Data模板中建議的一個懶惰的實例化屬性。 – vadian
@vadian你可以提供蘋果文檔的鏈接,它說它應該是懶惰實例嗎? – 2017-02-15 21:02:50
只需創建一個啓用了核心數據的新(Master-Detail)項目並研究提供的代碼。 – vadian