如何解决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 举报,一经查实,本站将立刻删除。