NSPredicate 解释 keyPath 而不是 属性
NSPredicate interpreting a keyPath instead of a property
我有 Recipes
的 Core Data
数据库。每个 Recipe
都有一个 ingredients
关系(多对多),所以我的 XYZRecipe
对象有一个 ingredients
属性 指向 NSSet
XYZIngredients
.
我想要一个 NSPredicate
到 select 所有 Recipes
超过 5 个 ingredients
并试过这个:
NSPredicate *p = [NSPredicate predicateWithFormat:@"ingredients.count > 5"];
失败,并抱怨 class XYZIngredient
不符合 count
的键值。
显然 "ingredients.count"
被解释为 keyPath
而不是返回每个食谱的 ingredients
属性。
有办法解决这个问题吗?
应该可以在 KVC 端和 Core Data 端解决该问题:
KVC:
@"ingredients.@count > 5"
应将成分计数作为关键路径的结果。
核心数据:
@"ingredients[SIZE] > 5"
我有 Recipes
的 Core Data
数据库。每个 Recipe
都有一个 ingredients
关系(多对多),所以我的 XYZRecipe
对象有一个 ingredients
属性 指向 NSSet
XYZIngredients
.
我想要一个 NSPredicate
到 select 所有 Recipes
超过 5 个 ingredients
并试过这个:
NSPredicate *p = [NSPredicate predicateWithFormat:@"ingredients.count > 5"];
失败,并抱怨 class XYZIngredient
不符合 count
的键值。
显然 "ingredients.count"
被解释为 keyPath
而不是返回每个食谱的 ingredients
属性。
有办法解决这个问题吗?
应该可以在 KVC 端和 Core Data 端解决该问题:
KVC:
@"ingredients.@count > 5"
应将成分计数作为关键路径的结果。
核心数据:
@"ingredients[SIZE] > 5"