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?
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.
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"
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.