Ich habe ein NSManagedObject namens "Routine", das bereits in meinem Datenmodell gespeichert wurde. Es hat eine To-Viele-Beziehung zu einem anderen NSManagedObject namens "Workout". Ich möchte die Routine bearbeiten, um ihr weitere Trainingsbeziehungen hinzuzufügen.Kopiert CoreData Objekte?
let routine = fetchedResultsController.objectAtIndexPath(indexPath) as! Routine
Der Viewcontroller, wo ich die Routine in meinem Datenmodell bearbeiten eine Reihe von Trainings-Objekten enthalten:
var myWorkouts = [Workout]()
Einige der Übungen in dem „myWorkouts“ Array kann schon mit Routine in Verbindung gebracht wurde, während andere möglicherweise nicht (ein neues Training) haben. Ich erstelle eine Beziehung zwischen jedem Training und die Routine wie folgt aus:
for workout in myWorkouts {
routine!.setValue(NSSet(objects: workout), forKey: "workout")
}
Meine Frage: Wenn eine Beziehung zwischen einer Routine und einem Workout bereits erstellt wurde, wird die oben for-Schleife ein Duplikat davon erstellen Workout, um mit meiner Routine zu assoziieren, oder wird es nur neue Beziehungen für zuvor nicht assoziierte Workouts erstellen?
Ich hoffe meine Fragen ergeben Sinn. Vielen Dank im Voraus für die Hilfe!
Routine CoreDataProperties Datei
import Foundation
import CoreData
extension Routine {
@NSManaged var name: String?
@NSManaged var workout: Set<Workout>?
}
Ich habe bereits Schritt 1, aber 2 und 3 sind fantastische Vorschläge, also vielen Dank! Ich bin immer noch daran gewöhnt, mit dem Aktualisieren und Hinzufügen von Beziehungen zu arbeiten, also schätze ich die Erklärung! : D – user3353890
Gern geschehen! Und in Schritt 3 ist es im Allgemeinen immer viel vernünftiger (und ich habe es beim ersten Mal rückwärts geschafft), Anrufe zu tätigen, um Dinge auf der Eins-Seite zu speichern. – sschale
Super! Also, wenn ich richtig verstehe, ändere ich einfach das verzerrte Chaos der Routine! .setvalue ... to routine.workout = workout – user3353890