【问题标题】:CoreData. Fetchrequest all entities with relations核心数据。 Fetchrequest 有关系的所有实体
【发布时间】:2016-05-11 19:08:44
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: entity-framework core-data nsfetchrequest executefetchrequest


    【解决方案1】:

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

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

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

    【讨论】:

    • 太棒了!我没有想到我已经从底部向上钻了。也是一个救生员,内部标识符中止了对顶级实体的唯一标识符的需求。谢谢:-)
    猜你喜欢
    • 2017-08-12
    • 2014-06-06
    • 2011-02-14
    • 1970-01-01
    • 1970-01-01
    • 2011-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多