Ios ';NSInvalidArgumentException';,原因:';不支持的谓词(null)和#x27;
我在尝试实例化 带有聚合谓词的NSFetchedResultsController 我的Coredata结构如下所示-有一个PurchaseDetails实体,它有n个支付实体(一对多关系)。每个付款都有一个类型,例如现金、支票、其他等。现在我需要获得所有购买详细信息的列表,其中Payment.type=现金 NSPredicate如下所示:Ios ';NSInvalidArgumentException';,原因:';不支持的谓词(null)和#x27;,ios,objective-c,core-data,aggregate,nspredicate,Ios,Objective C,Core Data,Aggregate,Nspredicate,我在尝试实例化 带有聚合谓词的NSFetchedResultsController 我的Coredata结构如下所示-有一个PurchaseDetails实体,它有n个支付实体(一对多关系)。每个付款都有一个类型,例如现金、支票、其他等。现在我需要获得所有购买详细信息的列表,其中Payment.type=现金 NSPredicate如下所示:@“ALL payments.type=‘cash’” 我们不应该全部使用吗? 谓词不是在创建时崩溃,而是在执行获取请求时崩溃 但是,如果不使用NSFetc
@“ALL payments.type=‘cash’”
我们不应该全部使用吗?
谓词不是在创建时崩溃,而是在执行获取请求时崩溃
但是,如果不使用NSFetchedResultsController
而单独使用,相同的获取请求也可以正常工作。它们都不能一起工作?是的,如果付款是一种多对多的关系,您需要使用ALL
。请注意,这意味着每一笔付款的类型将是@“现金”
。如果您至少需要一次现金支付,请使用ANY
不过,错误消息中的(null)
提示了其他内容。您是否将谓词附加到提取请求
另外,您是否尝试在“获取结果”控制器中设置缓存:nil
?FRC可能是您获得陈旧结果的原因。是的,我只需要所有付款类型为“现金”的采购明细。它正好在[controller performFetch:&error]
处崩溃,并且提取请求也正确。如果我用ANY
替换它,一切都正常,但它不是缩进谓词。因此,它可能“不起作用”,因为有一笔付款的类型不是cash
或未设置。-此外,使用FRC时,通常会出现缓存问题。初始化时尝试设置缓存:nil
。感谢您的帮助。我已确保缓存为零。第一点:我的意思是,检查你的数据。可能谓词是正确的,但数据不包含您期望的内容。