Filtre o NSArray com base em outra matriz usando o predicado

Considere as matrizes abaixo. As matrizes contêm objetos do tipo 'Alpha'. Nós só nos preocupamos com a propriedadeusername que é do tipoNSString.

NSArray *some_usernames = @[ <multiple values of type Alpha> ]
NSArray *all_usernames = @[ <multiple values of type Alpha> ]

Eu basicamente quero uma lista de todos os nomes de usuário que não estão na matrizsome_usernames, ou seja,

NSArray *remaining_usernames = @[ <all_usernames but not in some_usernames> ];

A maneira que eu pretendia fazer é:

NSPredicates *predicates;
for (Alpha *alpha in some_usernames)
{
    predicate = [predicate with @"username != %@", alpha.username];
    predicates.add(predicate)
}

create compound predicate
filter all_usernames

Mas isso parece uma má maneira de fazer isso. Existe uma maneira de fazer isso em duas linhas? Eu já vi isso antes, mas não posso mais apontar para a referência de código.

questionAnswers(2)

yourAnswerToTheQuestion