You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建NSPredicate查询Core Data中关联最新Note的Address实体

解决方案:筛选关联最新Note文本匹配的Address实体

要查询所有关联的最新Note文本包含指定短语的Address实体,可以通过SUBQUERY结合聚合函数MAX构建NSPredicate,精准定位每个Address下的最新Note并判断匹配条件:

let predicate = NSPredicate(format: "SUBQUERY(notes, $note, $note.date == MAX(notes.date) AND $note.text CONTAINS [cd] %@).@count > 0", phrase)

代码逻辑说明

  • SUBQUERY(notes, $note, ...):遍历当前Address关联的所有Note实体,$note为遍历变量
  • $note.date == MAX(notes.date):筛选出当前Address下date属性最大的最新Note
  • $note.text CONTAINS [cd] %@:判断该最新Note的文本是否包含指定短语,[cd]表示忽略大小写和重音
  • @count > 0:确保子查询返回非空结果,即当前Address存在符合条件的最新Note

注:如果Address未关联任何Note,该Predicate会自动排除这类实体,因为MAX(notes.date)会返回nil,条件不成立。

内容的提问来源于stack exchange,提问作者kunass2

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 18:05:17