计数查询核心数据谓词



我有一个名为 schedule 的实体,它有许多警报(其他实体(,我只想获取未来警报少于 30 个的计划。到处搜索,我得到那个不起作用的查询/:

 let predicateFutureAlarms = NSPredicate(format: "(alarms.date > %@).@count < 30", NSDate().timeIntervalSince1970)

(在运行时,控制台上显示 A (LLDB( 并指定该变量的初始化(

至少有两个问题:

  • "(alarms.date > %@).@count < 30"不是有效的谓词语法。
  • %@占位符需要一个对象,但NSDate().timeIntervalSince1970是一个浮点

我目前无法测试它,但这样的事情应该可以工作:

let now = NSDate()
let predicate = NSPredicate(format: "SUBQUERY(alarms, $a, $a.date > %@).@count < 30", now)

对于每个Schedule对象,SUBQUERY(...)计算出alarms具有大于 nowdate

有关谓词

的一般说明,请参阅"谓词格式字符串语法"语法。"SUBQUERY"表达式的文档记录很差,比较 NSPredicate 表达式中NSExpression类引用或 SUBQUERY 的快速说明。

相关内容

  • 没有找到相关文章

最新更新