swift - 核心数据关系 : Filter and Sort

标签 swift core-data relationship fetch

在我的核心数据中,我有两个实体(个人资料、照片)。个人资料与照片具有 toMany 关系(照片)。

我可以访问照片:

// all
let photos = profile.photos?.allObjects

// sorted
let photos = profile.photos?.sortedArray(using: [NSSortDescriptor(key: "ordering", ascending: true)])

// filtered
let photos = profile.photos?.filtered(using: NSPredicate(format: "type = 'x'"))

是否有一种使用关系组合过滤和排序的简单方法,或者我是否必须创建一个单独的 NSFetchRequest

最佳答案

根据我的理解,你的问题与核心数据无关,它与同一个数组的排序和过滤有关,所以请尝试以下代码

let photos = profile.photos?.allObjects
let result = photos
                .filter { $0.type == "x" }
                .sort { $0.ordering < $1.ordering }

换句话说,如果您不想在结果数组上添加显式过滤器和排序,那么您可以创建一个获取请求,并添加带有排序描述符的谓词,这样您将得到预期的结果。

关于swift - 核心数据关系 : Filter and Sort,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43742373/

相关文章:

Swift colorWithAlphaComponent() 不起作用

ios - 设置 JTCalendar 单元格的大小

elasticsearch - ES7 - 如何建模 1-n 父子关系 - 不同的 ES 类型

c++ - 管理类的聚合/组合成员之间的关系

ios - 如何自动滚动collectionView?

arrays - 在swift中获取元组数组的子集

ios - NSFetchedResultsController 未按预期获取

python - 在 sqlalchemy 中绑定(bind)关系时分配变量

ios - 仅在 iOS 14 中崩溃核心数据

ios - 什么时候必须将框架和库链接到 XCode 项目?