NSPredicate for Array of Dictionaries

我有一个

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..... 

我想创build一个NSPredicate,search给定的string是否包含在名称内。 我怎样才能达到这个深度?

如果你不能理解图表。 我有一个充满字典的数组,里面的字典是一个string,一个字典数组和一个字典数组,字典里面的string对象

那么如何进入第二个字典并searchName键

提前致谢

你需要以下

 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; 

要获得名称,你必须这样做:

 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 } }