NSPredicate for Dictionaries

ano*_*per 4 xcode objective-c nspredicate ios

我有一个

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.....
Run Code Online (Sandbox Code Playgroud)

我想创建一个NSPredicate搜索给定的字符串是否包含在Name中.我怎样才能达到那么深的目标?

如果你无法理解图表.我有一个充满字典的数组,里面的字典是一个字符串,一个字典数组和一个字典数组,里面的字典是字符串对象

那么如何进入第二个词典并搜索Name键

提前致谢

mal*_*lex 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;
Run Code Online (Sandbox Code Playgroud)

  • 我不明白为什么在谓词中经常提出"LIKE"."LIKE"执行简单的通配符搜索,因此``name LIKE'A*B'"`查找所有以A开头并以B结尾的名称.在大多数情况下,您需要"=="或者"BEGINSWITH"或"包含". - (+1)虽然. (3认同)