首页 > 解决方案 > Core Data 嵌套数组计数

问题描述

我在核心数据中嵌套了多个关系:A -> B -> C,其中 A 有多个 B 对象,B 有多个 C 对象。

现在,我正在尝试获取所有与 C 相关的对象为零的对象 A,无论它们之间有多少 B 对象。

我试过这个谓词:

NSPredicate(format: "SUBQUERY(arrayOfB, $b, $b.arrayOfC.@count == 0).@count > 0")

但它给了我这个错误:

'NSInvalidArgumentException', reason: 'Keypath containing KVC aggregate where there shouldn't be one; failed to handle $b.arrayOfC.@count'

标签: iosswiftcore-datanspredicate

解决方案


尝试使用计数表达式的替代格式:

NSPredicate(format: "SUBQUERY(arrayOfB, $b, count:($b.arrayOfC) > 0).@count == 0")

请注意,我认为您的条件是错误的:您希望(arrayOfB 的计数为零,其中 arrayOfC 具有非零成员)。


推荐阅读