我有2个实体:Series和Season。一个系列可以有多个季节,所以我将关系类型设置为“to many”。 season_counter是一个Int数组,包含剧集的数量。Swift - 如何将条目保存到循环中的核心数据中
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 _ {
}
}
在调试时我注意到,那season_counter存储了正确的值。当我显示结果,我只有上赛季存储(例如13个集,seasons.count为1):
do {
let fetchRequest = NSFetchRequest(entityName: "Season")
fetchRequest.predicate = NSPredicate(format: "series = %@", series)
try seasons = context?.executeFetchRequest(fetchRequest) as! [Season]
print(seasons.count)
print(seasons[0].episodes)
} catch {
}
任何提示,以解决这个问题?
我得到了你的观点。我有这样的一个子类: 进口基金会 进口CoreData 类季节:NSManagedObject { } 的NSManaged价值观在这里:(带@) 进口基金会 进口CoreData 扩展赛季{ NSManaged var id:NSNumber? NSManaged var value:NSNumber? NSManaged var集:NSNumber? NSManaged var series:Series? } 我现在该怎么办? – IceCoala