Nach dem Lernen über Beziehungen zwischenEntitäten in den Kerndaten. Ich verstehe nicht den wahren Grund für das Einrichten einer Beziehung zwischen zwei Entitäten. Sie können separat verbunden werden, wenn eine der Entitäten eine Eigenschaft enthält, die eine andere Entität enthalten kann, indem sie eine Eigenschaft vom Typ besitzt NSManagedObject
.
@property (nonatomic, strong ) NSManagedObject *AssetType;
Antworten:
2 für die Antwort № 1Dies ist ein Konzept, das Sie verstehen müssen: Core Data ist keine Datenbank, sondern ein Objektgraphmanager und bietet als zweite Funktionalität Persistenz (z. B. Verwendung eines Sqlite-Speichers).
Sagte dies, wenn Sie zwei getrennte Entitäten haben undSie müssen Werte basierend auf den Bedingungen abrufen, die zu der anderen Entität gehören. Sie müssen zwei Anforderungen ausführen und die Ergebnisse im Speicher filtern. Wenn Sie dagegen eine Beziehung einrichten, können Sie einfach eine Anfrage mit einem bestimmten Vergleichselement erstellen und Core Data die richtigen Ergebnisse für Sie abrufen lassen. Darüber hinaus können Sie über Beziehungen auf Objekte zugreifen, die zu einer anderen Entität gehören, ebenso wie auf ein Eigenschaftsobjekt. Das folgende Snippet sagt beispielsweise aus, dass es auf basiert entityA
Ich kann auf eine Immobilienbesichtigung zugreifen someRelationship
Dies ermöglicht das Abrufen einer (oder mehrerer) Entitäten des Typs EntityB
. Ob someRelationship
als viele eingerichtet wurde, erhalten Sie eine oder mehrere EntityB
Entitäten.
entityB = entityA.someRelationship;
Der wirkliche Rat ist, in Bezug auf zu denken Objektdiagramm!!!
Weitere Referenz: Kerndaten Übersicht von objc.io.
Update 1
Der andere große Vorteil besteht darin, dass Sie durch die Beziehungen Löschregeln nutzen können. Durch inverse Beziehungen können Sie die Integrität Ihres Diagramms erhalten.
Sehen Beziehungen und abgerufene Eigenschaften.