Was ist CoreData-Fehler?

8

Kann jemand erklären, was Coredata-Fehler bedeutet? Ich habe verstanden, dass es ein Mechanismus ist, um das Gedächtnis zu reduzieren. Aber meine Frage ist, wenn wir versuchen, ein fehlerhaftes Objekt zu verwenden, müssen wir irgendwelche Aktualisierungsmethoden aufrufen oder wird CoreData die Werte für uns auswählen? Wenn CoreData es für uns handhabt, was passiert, wenn das fehlerhafte Objekt aus dem tatsächlichen persistenten Speicher gelöscht wird und wir versuchen, über ein fehlerhaftes Objekt darauf zuzugreifen? Wird es irgendeine Ausnahme werfen?

    
Advaith 31.01.2013, 20:20
quelle

3 Antworten

17

In Core Data sind Fehler Platzhalter oder "nicht realisierte Objekte". Sie sind kleine Objekte, die sich auf andere NSManagedObjects beziehen, die nur bei Bedarf in den Speicher geholt werden. Dieser Fehlermechanismus wurde entwickelt, um die Leistung zu verbessern und den Speicherverbrauch zu reduzieren.

Im Allgemeinen ist der Fehlermechanismus transparent; Wenn Sie ein Objekt von einem NSManagedObjectContext (MOC) abrufen, können Sie (im normalen Verlauf der Verwendung) nicht feststellen, ob es sich um einen Fehler oder ein reales Objekt handelt. Ein Fehler wird in den meisten Fällen automatisch durch das Kerndaten-Framework in ein reales Objekt ("ausgelöst") umgewandelt, wenn dies erforderlich ist, z. beim Zugriff auf eine Eigenschaft des Objekts. Wenn Sie selbst einen Fehler auslösen müssen, können Sie dies tun, indem Sie die Methode 'willAccessValueForKey:' mit einem Argument nil aufrufen.

    
Dhruv Goel 31.01.2013, 20:33
quelle
3

Tolle Antwort von Dhruv! Als Antwort auf Ihre letzte Frage, wenn Sie versuchen, auf ein verwaltetes Objekt zuzugreifen, das zuerst fehlerhaft und dann gelöscht wurde, sehen Sie eine NSObjectInaccessibleException und die Meldung "Core Data konnte keinen Fehler erfüllen"

    
David N. Foote 01.02.2013 17:56
quelle
1

von Coredata Referenz:

  

Fehlfunktionen reduzieren die Menge an Speicher, die Ihre Anwendung verbraucht. EIN   Fehler ist ein Platzhalterobjekt, das ein verwaltetes Objekt darstellt, das   wurde noch nicht vollständig realisiert, oder ein Sammelobjekt, das   stellt eine Beziehung dar.

    
cleexiang 19.05.2015 03:31
quelle

Tags und Links