2
我正在尝试为NSPredicate编写一个子查询。我的问题是我没有查询SUBQUERY的谓词部分。有没有办法在SUBQUERY内部嵌套一个NSPredicate?NSPredicate SUBQUERY内
例如这是我曾尝试:
let ordersPredicate = NSPredicate()//some predicate passed in
//how do I use the ordersPredicate inside the subquery??
let subQueryPredicate = NSPredicate(format: "SUBQUERY(orders, $x,'%@')[email protected] > 0", ordersPredicate.predicateFormat)
更新:我已经通过执行第一个谓词和IN查询ANY做一个做一个肮脏的解决方法了。其跛脚:(因为我从@Willeke执行ordersPredicate其他地方以及后来在管道..
let fetchRequest = NSFetchRequest()//blah
fetchRequest.predicate = orderPredicate
let orders = //execute fetch
let subQueryPredicate = NSPredicate(format: "SUBQUERY(orders, $x, ANY $x in %@)[email protected] > 0", orders)
你可以发布您的Order类/定义和解释你想达到什么? – vikingosegundo
在解决方法你不需要一个子查询,在'%@任何订单'就行了。 w ^你是否将'returnObjectsAsFaults'设置为false? – Willeke
如果你想在子查询中使用谓词,谓词应该是'$ x.orderNumber = 10',''x''。可以转换谓词,但可能更容易重新设计管线。 – Willeke