2017-02-15 2 views
0

Meine App stürzt ab und gibt mir einen fatalen Fehler, der mir nicht wirklich etwas sagt, also weiß ich nicht, was passieren könnte.NSFetchedResultsController Schwerwiegender Fehler beim Arbeiten mit CoreData (Versuch holen)

Hier ist der Abschnitt meines Codes, der mir Probleme bereitet.

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)") 

    } 

} 

Es stürzt bei

let mainController = NSFetchedResultsController(fetchRequest: fetchRequest, managedObjectContext: context, sectionNameKeyPath: nil, cacheName: nil) 

Und "Kontext" verweist auf den AppDelegate

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

Der Fehler ist:

fatal error: Unresolved error Error Domain=NSCocoaErrorDomain Code=134140 "(null)" UserInfo={sourceModel=() isEditable 1, entities { "Crash on line 70 of the app delegate"

Danke für Ihre Hilfe

+0

'controller' (' NSFetchedResultsController') soll eine faul instanziierte Eigenschaft in der Klasse sein, wie von Apple in der Core Data Vorlage vorgeschlagen. – vadian

+0

@vadian Könnten Sie den Link für die Apple-Dokumentation bereitstellen, wo es heißt, dass es instanziiert sein soll? –

+0

Erstellen Sie einfach ein neues (Master-Detail) -Projekt mit aktivierten Kerndaten und untersuchen Sie den bereitgestellten Code. – vadian

Antwort

0

Da Sie diese holen laufen in Ihren AppDelegate Methoden, wie ich vermute, dass Sie Ihre fetchvor Ihre Coredata dauerhafte Speicherung zu tun versuchen und es ist Contextes bei dem Absturz initialisiert wurde resultieren.

Verwandte Themen