CoreData。 Fetchrequest所有具有关系

时间:2016-05-11 19:08:45

标签: entity-framework core-data nsfetchrequest executefetchrequest

我的主要实体叫做系列。 Series与一个名为Rounds的实体有一对多的关系,由一对多(有序)连接,Rounds再次有一个带有Shots的NSOrderedSet。 Shots实体有一个名为score的属性,它是一个Integer。

xcdatamodeld

我想要的是获得属于特定系列的Shots实体的所有分数。

let shots = currentSeries.rounds.shots as [Shots]
由于错误消息,

没有给我所有的镜头迭代:“类型'NSOrderedSet'的值没有成员:'shot'”。不知何故,我需要为“镜头”实体设置谓词,该实体过滤属于特定“系列”实体的所有镜头。系列实体没有唯一标识符,但我想可以使用时间戳属性隔离特定的“系列”。但同样,我想要所有“镜头”实体,连接到那个特定的“系列”。

我可能非常需要关于CoreData挖掘的帮助,或者至少是关于如何完成我的努力的建议。

1 个答案:

答案 0 :(得分:1)

获取给定Shots的所有Series的一种方法是使用谓词获取:

let fetch = NSFetchRequest(entityName:"Shots")
let fetch.predicate = NSPredicate(format:"rounds.series == %@", currentSeries)
let currentSeriesShots = try! context.executeFetchRequest(fetch) as! [Shots]

(您应该添加适当的错误处理)。无需使用唯一标识符--CoreData将使用其自己的(内部)标识符来currentSeries对象来确定要返回的Shots