2016-03-31 84 views
0

我有兩個實體:核心數據添加關係價值

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? 

} 

我就如何將新的相遇設置爲所有選手之前提出了這個問題,被告知我需要添加這些擴展我已經改變關係後進行多到很多。

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) 
    } 
} 

任何人都可以指出我要去哪裏嗎?

if let meetname = meetNameText.text { 

       item.meetName = meetname 

       //let newMeet = meetNameText.text 
       let newMeet = item.gymnasts!.mutableCopy() as! NSMutableSet 
       let items = self.mutableSetValueForKey("gymnasts") 
       items.addObject(newMeet) 

回答

0

首先,你必須讓所有的體操運動員集合在一起,並創建一個新的見面。要設置新的相遇的體操運動員到設定你做體操運動員:

newMeet.gymnasts = setOfGymnasts 

這將替換所有相關的體操運動員,但一個新的相遇沒有任何。

要一個體操運動員添加到現有的滿足:

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

要添加一組體操運動員到現有的滿足:

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

您也可以使用像removeObjectminusSetNSMutableSet其他方法。

+0

感謝您的額外信息。 – debratton