我有一个
Array
Item 0 -- Dictionary
Sport -- String
Mens -- Array
Item 0 -- Dictionary
Name -- String
Rules -- String
Description -- String
Womens -- Array
Item 0 -- Dictionary
Name -- String
Rules -- String
Description -- String
Item 1 -- Dictionary
And so on.....
我想创建一个NSPredicate来搜索Name中是否包含给定的字符串。我怎样才能达到那么深的目标?
如果你无法理解图表。我有一个充满字典的数组,里面的字典是一个字符串,一个字典数组和一个字典数组,里面的字典是字符串对象
那么如何进入第二个词典并搜索名称密钥
提前致谢
答案 0 :(得分:22)
您需要以下
NSString *str = <search string>;
NSPredicate *pred = [NSPredicate predicateWithFormat:@"ANY Mens.Name LIKE %@ OR ANY Womens.Name LIKE %@", str, str];
NSArray *result = [your_array filteredArrayUsingPredicate:pred];
BOOL success = result.count > 0;
答案 1 :(得分:-7)
要获得名称,您必须这样做:
for (NSDictionary *itemDict in myArray)
{
NSArray *womensArray = (NSArray*)[itemDict objectForKey:@"Womens"];
for (NSDictionary *womenItemDict in womensArray)
{
NSString *name = [womenItemDict objectForKey:@"Name"];
//Do the comparison here
}
}