2016-03-31 15 views
0

Ich habe zwei Entitäten:Core Data fügen Beziehung Wert

extension Meet { 

    @NSManaged var meetAllAroundScore: NSNumber? 
    @NSManaged var meetBarPlace: String? 
    @NSManaged var meetBarScore: NSNumber? 
    @NSManaged var meetBeamPlace: String? 
    @NSManaged var meetBeamScore: NSNumber? 
    @NSManaged var meetDate: String? 
    @NSManaged var meetDateSort: String? 
    @NSManaged var meetFloorPlace: String? 
    @NSManaged var meetFloorScore: NSNumber? 
    @NSManaged var meetLocation: String? 
    @NSManaged var meetName: String? 
    @NSManaged var meetStatus: String? 
    @NSManaged var meetTime: String? 
    @NSManaged var meetTimeSort: String? 
    @NSManaged var teamPlace: String? 
    @NSManaged var gymnasts: NSSet? 

} 

extension Gymnast { 

    @NSManaged var age: NSNumber? 
    @NSManaged var email: String? 
    @NSManaged var firstName: String? 
    @NSManaged var gender: String? 
    @NSManaged var isActive: String? 
    @NSManaged var lastName: String? 
    @NSManaged var level: NSNumber? 
    @NSManaged var picture: NSData? 
    @NSManaged var telephone: String? 
    @NSManaged var usag: String? 
    @NSManaged var meets: NSSet? 

} 

ich diese Frage gestellt, bevor sie auf, wie neue treffen auf alle Turnerinnen setzen und mir wurde gesagt, ich diese Erweiterungen hinzufügen benötigt, die ich nach dem Wechsel Beziehung getan haben zu vielen zu vielen.

extension NSManagedObject { 
    func addObject(value: NSManagedObject, forKey key: String) { 
     let items = self.mutableSetValueForKey(key) 
     items.addObject(value) 
    } 

    func removeObject(value: NSManagedObject, forKey key: String) { 
     let items = self.mutableSetValueForKey(key) 
     items.removeObject(value) 
    } 
} 

Kann mir jemand zeigen, wo ich falsch liege?

Antwort

0

Zuerst müssen Sie alle Turner in einem Set bekommen und ein neues Treffen erstellen. So stellen Sie die Turnerinnen des neuen treffen auf den Satz von Turner Sie tun:

newMeet.gymnasts = setOfGymnasts 

Dies ersetzt alle damit verbundenen Turnerinnen, sondern ein neues treffen hat keine.

Um einen Turner zu einem bestehenden treffen hinzu:

let items = meet.mutableSetValueForKey("gymnasts") 
items.addObject(gymnast) 

Um einen Satz von Turner zu einem bestehenden treffen hinzu:

let items = meet.mutableSetValueForKey("gymnasts") 
items.unionSet(setOfGymnasts) 

Sie auch anderen Methoden der NSMutableSet wie removeObject und minusSet können .

+0

Danke für die zusätzlichen Informationen. – debratton