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.