总之,我正在寻找正确的谓词格式来索引对象的字典属性。关键字路径为谓词中的对象的字典属性的元素?
我有一个myObject实例数组,每个都有一个属性CPDictionary(NSMutableDictionary)extAttributes,我试图允许基于extAttributes中的值进行过滤。我正在定义我的谓词如下
[CPPredicate predicateWithFormat:@"extAttributes[%K] like[c] %@",key,val]
我不知道什么是正确的键路径会是这样。阅读关于NSPredicate的文档,似乎“extAttributes [%k]”可能是数组索引,而不是字典。我已经尝试了几种选择,这是唯一一个不会出错的选择。在检查结果对象时,谓词对象中的表达式看起来是正确的。但是,它没有预期的结果。
我通过实施'解决了这个 - (ID)valueForUndefinedKey:(ID)key'上myObject的。 ' - (id)valueForUndefinedKey:(id)key {ret = [extAttributes objectForKey:key]; return ret; } ' 然后它就是'[CPPredicate predicateWithFormat:@“%K like [c]%@”,key,val];' – jlujan
这是一个破解。不要这样做。使用关键路径。 – jlehr
这是它的一个副作用,它已经实现了将随机列添加到表视图。正确的关键路径是什么? – jlujan