核心数据嵌套数组计数

问题描述

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

现在,我正在尝试获取所有对象 A,其中 C 的相关对象为零,无论 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'

解决方法

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

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

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