1

我的主要实体称为系列。Series 与称为 Rounds 的实体具有一对多关系,通过一对多(有序)连接,并且 Rounds 再次具有带有 Shots 的 NSOrderedSet。Shots 实体有一个名为 score 的属性,它是一个整数。

xcdatamodeld

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

let shots = currentSeries.rounds.shots as [Shots]

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

我可能真的需要一些关于 CoreData 挖掘的帮助,或者至少需要一些关于如何完成我的工作的建议。

4

1 回答 1

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要返回的对象。

于 2016-05-12T13:42:45.987 回答