使用NSPredicate for Dictionaries获取不匹配的字符串

时间:2016-03-07 11:54:22

标签: ios objective-c nspredicate

我有

  Array
  Item 0 -- Dictionary
    name -- String
    phoneNumbers  -- Array
      Item 0 -- string
   Item 1 -- Dictionary
      And so on.....

我想创建一个不在NSPredicate数组内的给定数组中的phoneNumbers select phoneNumbers。我怎样才能达到那么深的目标?

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

那么我如何进入第二个字符串(字符串数组) phoneNumbers 并使用{{1获取不在给定字符串数组 givenPhoneNumbers 中的phoneNumbers }}?

提前致谢

1 个答案:

答案 0 :(得分:0)

试试这个

    NSMutableArray *arrItems; //set ur dict data;
    NSMutableArray *givenPhoneNumbers; //set phone numbers array;
  NSMutableArray *requiredPhoneNumbers = [NSMutableArray new];

  [arrItems enumerateObjectsUsingBlock:^(NSDictionary *obj, NSUInteger idx,
                                         BOOL *_Nonnull stop) {

    [requiredPhoneNumbers
        addObjectsFromArray:
            [[obj objectForKey:@"phoneNumbers"]
                filteredArrayUsingPredicate:
                    [NSPredicate predicateWithFormat:@"NOT (Self IN %@)",
                                                     givenPhoneNumbers]]];
  }];