2016-10-15 1 views
0

Wenn ich meine App mit dem Internet lade, gehe in den Flugzeugmodus Ich kann Posts laden, die in der coreData-Datei gespeichert sind. Aber wenn ich mein Flugzeug laden bereits im Flugzeugmodus erhalte ich einen Absturz auf dieser Linie:Absturz beim Laden von Daten von coreData im Flugzeugmodus

let results = try moc.fetch(fetchRequest) 

aus dieser Funktion:

func loadImages(_ fetched:@escaping (_ images:[FullRes]?) -> Void) { 

    saveQueue.async() { 
     let context = self.getContext() 

     guard let moc = context else { 
      return 
     } 


     let fetchRequest: NSFetchRequest<NSFetchRequestResult> = FullRes.fetchRequest() 
     //let request: NSFetchRequest<NSFetchRequestResult> = FullRes.fetchRequest() 
     //let fetchRequest = NSFetchRequest(entityName: "FullRes")//NSFetchRequest(entityName: "FullRes") 


     do { 

      let results = try moc.fetch(fetchRequest) 

      let imageData = results as? [FullRes] 
      DispatchQueue.main.async() { 
       fetched(imageData) 

      } 
     } catch let error as NSError { 
      print("Could not fetch \(error), \(error.userInfo)") 
      return 
     } 
    } 
} 

Und es gibt mir diese Meldung:

Terminating App aufgrund der nicht abgefangenen Ausnahme 'NSInvalidArgumentException', Grund: 'executeFetchRequest: error: ist kein gültiges NSFetchRequest.'

Nicht sicher, warum dies geschieht ... Irgendwelche Ideen?

+0

Wenn der Fehler die Anforderung ungültig ist etwa, müssen Sie die Quelle schließen für 'FullRes.fetchRequest()'. – hlfcoding

Antwort

1

Ich reparierte sie durch dieses

if Reachability.isConnectedToNetwork() == true { 
    } 

um meine loadPosts() Funktion in viewDidLoad

setzen, wie es war Methoden aus AppDelegate ruft!

mir Stunden in Anspruch nahm;)

+0

Das könnte Ihren Absturz stoppen, aber es beantwortet Ihre Frage nicht. Von dem, was Sie hier gesagt haben, gibt es keinen Grund, dass die Netzwerkverbindung Ihre Fähigkeit zur Verwendung von Core Data beeinflussen würde. Sie haben das Problem versteckt, aber Sie haben es nicht behoben. –

+0

@TomHarrington Danke für Ihr Interesse daran. Im Grunde war das Problem in der AppDelegate Ich hatte setNetworkActivityIndicator & eine andere Funktion zum Anzeigen einer benutzerdefinierten UIView in der Hauptansicht (für Fehler oder Internet-Verbindung usw.) eingerichtet. In der Hauptansicht, in der ich das CoreData-Setup in der loadPosts-Funktion habe, habe ich auf diese zugegriffen und diese beiden Funktionen von AppDelegate verwendet. Als ich diese entfernte (löschte sie aus AppDelegate und entfernte den Code für den Zugriff in der Hauptansicht), funktionierte der CoreData wieder ... –

+0

Nun ja, ich habe im Grunde eine temporäre Lösung gefunden, um das zu beheben, aber nicht sicher, was ich sonst noch könnte Bitte ... lass mich deine Gedanken wissen. –

Verwandte Themen