Swift-如何将条目保存到循环中的核心数据

Swift-如何将条目保存到循环中的核心数据,swift,core-data,Swift,Core Data,我有两个实体:系列和季节。一个系列可以有多个季节,因此我将关系类型设置为“多个”。season_counter是一个整数数组,包含剧集数量 let newSeries = NSEntityDescription.insertNewObjectForEntityForName("Series", inManagedObjectContext: self.context!) as! Series for var i = 0; i < season_counter.count; ++i{

我有两个实体:系列和季节。一个系列可以有多个季节,因此我将关系类型设置为“多个”。season_counter是一个整数数组,包含剧集数量

let newSeries = NSEntityDescription.insertNewObjectForEntityForName("Series", inManagedObjectContext: self.context!) as! Series

for var i = 0; i < season_counter.count; ++i{
         let newSeason = NSEntityDescription.insertNewObjectForEntityForName("Season", inManagedObjectContext: self.context!) as! Season
         newSeason.value = i+1
         newSeason.episodes = season_counter[i]
         newSeries.setValue(NSSet(object: newSeason), forKey: "seasons")

     do {
         try context?.save()
    } catch _ {
    }
}

有什么建议可以解决这个问题吗?

在每次循环中,您都会丢弃以前的
seasons
值,并将其替换为只包含一个
seasons
的集合(新创建的
newSeason
):

不要这样做,而是建立一个包含所有
newSeason
实例的集合,然后使用该集合调用
setValue:forKey:
一次

顺便说一句,如果您创建了
NSManagedObject
的子类并摆脱了“关键价值”业务,您的生活会更轻松

使用这一行,您总是创建一组新的季节,其中包含示例一
季节
对象-
新闻季节

尝试这样做:

var prevSeasons = newSeries.valueForKey("seasons")  
prevSeasons.insert(newSeason)
newSeries.setValue(prevSeasons, forKey: "seasons")

我明白你的意思。我有这样的子类:导入基础导入CaleDATA类季节:NSnMaReDestObjij{{NStMube值在这里:(带@)导入基础导入CordaDATA季节{NSManaged var id:NSNumber?NSManaged var value:NSNumber?NSManaged var剧集:NSNumber?NSManaged var series:series?}我现在该怎么办?
     newSeries.setValue(NSSet(object: newSeason), forKey: "seasons")
newSeries.setValue(NSSet(object: newSeason), forKey: "seasons")
var prevSeasons = newSeries.valueForKey("seasons")  
prevSeasons.insert(newSeason)
newSeries.setValue(prevSeasons, forKey: "seasons")