2016-03-31 86 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