使用CoreData时NSFetchedResultsController致命错误(尝试获取)

时间:2017-02-15 20:49:41

标签: ios swift

我的应用程序崩溃并给我一个致命的错误,并没有真正告诉我任何事情,所以我不知道会发生什么。

这是我的代码中给我带来麻烦的部分。

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)

“context”引用了app delegate

let ad = UIApplication.shared.delegate as! AppDelegate
let context = ad.persistentContainer.viewContext

错误是:

  

致命错误:未解决的错误错误域= NSCocoaErrorDomain代码= 134140“(null)”UserInfo = {sourceModel =()isEditable 1,entities {   “应用代表的第70行崩溃”

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

由于您使用AppDelegate方法运行此抓取,我怀疑您正在尝试在之前执行您的CoreData持久存储,并且它的上下文已初始化导致崩溃。