在我的核心数据中,我有两个实体(个人资料、照片)。个人资料与照片具有 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/