我正在使用 NSPredicate 过滤 NSDictionary 对象的 NSArray 的内容。没什么疯狂的。我想在字典中检查相同搜索字符串的三个不同值。这是我传递给的字符串[NSPredicate predicateWithFormat:]
:
($ECInstanceLabel CONTAINS[c] filterMe) OR (SubLabel1 CONTAINS[c] filterMe) OR (SubLabel2 CONTAINS[c] filterMe)
当我执行此操作时,会创建一个新的 NSPredicate 的有效实例,但是当我执行此操作时[NSArray filteredArrayUsingPredicate:]
,应用程序会引发异常。
例外是:
'NSInvalidArgumentException',原因:'无法在绑定 {} 中获取 'ECInstanceLabel' 的值。
我认为问题的一部分是我的格式字符串指定第一个字典键值是$ECInstanceLabel
但不知何故$
被转义了。我尝试手动转义这个字符,但是当我尝试创建谓词时程序崩溃,所以我不认为该$
符号被识别为可转义字符。
任何想法或明显的东西我可能会丢失?
提前致谢。