qua*_*rac 5 core-data subquery nspredicate nsfetchedresultscontroller ios
我一直在寻找这个,但我一无所获,我认为它不受Core Data的支持.无论如何,让我们看看它:
我有3个实体:Ticket,TicketLine和CheffLine.

现在我想获取票证(通过a NSFetchedResultsController),但过滤至少有一个CheffLine cheffStatus 大于0的票证.问题是这cheffStatus是CheffLine实体的属性,所以我做了这个谓词:
[NSPredicate predicateWithFormat:@"0 != SUBQUERY(lines, $x, $x.cheffStatus > 0).@count)"];
Run Code Online (Sandbox Code Playgroud)
但是当执行时,我收到此错误:
由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:'无法为谓词生成SQL(0!= SUBQUERY(行,$ x,$ x.cheffStatus> 0).@ count)(RHS上的问题)'
我注意到,如果使用$x.someVariableInTheTicketLineEntity而不是使用查询完成$x.cheffStatus,则可以正常工作.我也试过使用CAST,但获得了相同的结果
[NSPredicate predicateWithFormat:@"0 != SUBQUERY(lines, $x, CAST($x, 'CheffLine').cheffStatus > 0).@count)"];
Run Code Online (Sandbox Code Playgroud)
有没有办法做这个查询?请记住,它必须在一个内部工作NSFetchedResultsController.
好吧,我发现没有解决办法。看这个:
正确的方法是在 2 个单独的请求中获取结果,然后手动合并,因此请忘记 NSFetchedResultsController。