使用 NSPredicate 获取不匹配的字符串作为字典数组

get not matched strings using NSPredicate for Array of Dictionaries

我有

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

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

如果您看不懂图表。我有一个充满字典的数组,字典里面是一个字符串和一个字符串数组

那么我如何进入第二个字符串(字符串数组)phoneNumbers 并获取不在给定字符串数组中的电话号码 givenPhoneNumbers 使用 NSPredicate

提前致谢

试试这个

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