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