微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

NSPredicate 过滤一对多关系

如何解决NSPredicate 过滤一对多关系

所以我有两个实体,称为药物和历史,其中一种药物可以具有存储许多日期和状态的历史记录(如果药物按时服用或晚了),并且我可以查看每种药物的详细信息,并列出用户服用该药物的日期,如下所示: Detail view with List of dates

所以我通过将我的 drug.dates 转换为一个历史数组并对其进行排序来获取这些日期:

 let medication: Medication
private var sortedHistoric: [Historic] {
    var aux = Array(medication.dates as? Set<Historic> ?? [])
    aux = aux.sorted(by: { $0.dates ?? .distantPast > $1.dates ?? .distantPast })
    return aux
}

解决方案有效,但我认为这不是正确的方法,因此是否可以使用谓词制作 FetchRequest 以仅获取此特定药物的日期? 我想到了这样的事情:

@FetchRequest(entity: Historic.entity(),sortDescriptors: [NSSortDescriptor(keyPath: \Historic.dates,ascending: false)])
private var historic: FetchedResults<Historic>
let predicate = nspredicate(format: "historic.medication == @",medication)
historic.predicate = predicate

但它不起作用。

提前感谢您的帮助!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。