Ich habe zwei Klassen A und B mit einer Viele-zu-Eins-Beziehung von A nach B (mehrere A-Objekte können auf dasselbe B verweisen). Die Frage ist, wenn die Löschregel auf der A-Seite Cascade ist, wird B nur gelöscht, wenn die letzte referenzierende A gelöscht wird oder wird gelöscht die erste Zeit eine assoziierte A wird gelöscht. Die Löschregel für die B-Seite der Beziehung lautet Nulify, wenn dies von Bedeutung ist.iPhone Core Data: Kaskadierendes Löschen über eine Viele-zu-Eins-Beziehung
Außerdem habe ich in den Core Data-Dokumenten gelesen, dass das optionale Flag in einigen Fällen wichtig ist. Aber es war nicht klar, wie sich die Beziehungen, die sie illustrierten, auf meinen Fall bezogen. Sie sprachen über einen Eindämmungsfall (B gehört A), während mein Fall eine der Subskriptionen/Assoziationen ist (B ist verwandt mit A).
Ich konnte einfach programmgesteuert im Code löschen, wollte aber Core Data das richtige tun, wenn möglich. Aber es ist nicht klar, dass die gesuchte Garbage-Collection-Semantik in Core Data unterstützt wird.
Irgendwelche Vorschläge?
Nur ein Vorschlag ... Da die docs Nachricht Super nicht sagen, dass es nicht notwendig ist, ist es wahrscheinlich eine gute Idee zu tun also: [super prepareForDeletion] –