' NSInvalidArgumentException',原因:'不支持的谓词(null)'

时间:2014-07-17 18:29:51

标签: ios objective-c core-data aggregate nspredicate

我在尝试实例化时遇到此不受支持的谓词错误     带有聚合谓词的NSFetchedResultsController。

我的Coredata结构如下所示:有一个PurchaseDetails实体,它有n个支付实体(一对多关系)。每个付款都有一个类型,例如,钱币,支票,其他等。现在我需要获取所有PurchaseDetails的列表,其中Payment.type = Cash。

NSPredicate看起来像这样:@"ALL payments.type = 'cash'"

我们不应该使用ALL吗? 谓词在创建时不会崩溃而在执行获取请求时会崩溃。

但是在不使用NSFetchedResultsController的情况下单独使用时,相同的提取请求可以正常工作。他们俩都不会一起工作?

1 个答案:

答案 0 :(得分:0)

是的,如果付款是多对多关系,则需要使用ALL。请注意,这意味着每个付款type都是@"cash"。如果您只想要至少一笔现金付款,请使用ANY

错误消息中的(null)提示其他内容。您是否将谓词附加到获取请求?

另外,您是否尝试在获取的结果控制器中设置cache:nil? FRC可能是您获得陈旧结果的原因。