Swift-如何将条目保存到循环中的核心数据
我有两个实体:系列和季节。一个系列可以有多个季节,因此我将关系类型设置为“多个”。season_counter是一个整数数组,包含剧集数量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{
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")