“与值包含字符串在NSDatabase任何条目”我有字典的数组,类似以下内容:NSPredicate匹配
( { Black = "?"; Date = "????.??.??"; Result = "*"; SourceDate = "2007.10.24"; White = "Mating pattern #1"; }, { Black = "?"; Date = "????.??.??"; Result = "*"; SourceDate = "2008.10.24"; White = "About this Publication"; } )
我想向用户提供搜索文本的能力或者在“白色”和“黑色”字段内,或者在任何字段内。我有一个NSPredicate这样做只是具体领域:
predicate = [NSPredicate
predicateWithFormat:@"self.Black contains[cd] %@ or self.White contains[cd] %@",
searchText, searchText];
[filteredGames addObjectsFromArray:[games filteredArrayUsingPredicate:predicate]];
我想不出如何撰写谓词将返回我的字典对于其任何比赛中的对象的文本。即我可以搜索“2007”,它会返回第一个字典,但不是第二个字典。我尝试了“自我。*”,这并不是我真正期望的,也是“任何self.allValues”,我更加希望。事实上我并没有事先知道钥匙是什么,因此需要一些不太具体的东西。
有什么建议吗?
嗨,感谢您的深入回复:-) 字典集不一定会在字典之间相同,所以我不能使用您提到的第一种方法。 其他看起来不错,但我已经去了最后一个,据我所知,如果我搜索任何过滤器,我会得到一个例外。即如果我搜索出现在所有字典中的单个字母,它可以工作,其他任何和它失败,我得到: ***由于未捕获异常“NSInvalidArgumentException”,终止应用程序,原因:'无法使用in /包含运算符与集合0(不是集合)' – mcknut 2011-04-06 19:45:51
@mcknut您可以在有关字典中的数据的问题中提供更多信息,以及它如何引发异常的具体示例? – 2011-04-06 20:11:15
如果我搜索“!”,则会发生异常这在字典中是相当罕见的。我实际上认为“我做错了”,我应该改用核心数据。在这种情况下,我会将Keys和Values存储在自己的实体中,并将其引用回父实体,然后搜索关键字和值实体以查找匹配项,我认为这将是最好的。 – mcknut 2011-04-06 23:20:28