So che questa è una vecchia domanda, ma qui c'è un'altra possibilità, a seconda di cosa è necessario.
Apple fornisce un modo per farlo - Key-Value Coding Collection Operators.
Gli operatori oggetto consentono di agire su una raccolta. In questo caso, si vuole:
@distinctUnionOfObjects
L'operatore @distinctUnionOfObjects restituisce un array contenente gli oggetti distinti nella proprietà specificata dal percorso tasto a destra dell'operatore.
NSArray *distinctArray = [arrayWithDuplicates
valueForKeyPath:@"@distinctUnionOfObjects.name"];
Nel tuo caso, però, si desidera che l'intero oggetto. Quindi quello che dovresti fare è duplice: 1) Usa invece @distinctUnionOfArrays
. Per esempio. Se questi oggetti personalizzati provengono da altre raccolte, utilizzare @distinctUnionOfArray.myCollectionOfObjects
2) Implementare isEqual:
su quegli oggetti da restituire se loro.Il nome di sono uguali
fonte
2014-07-11 17:42:04
sono gli elementi in un contenitore di Objective-C come NSArray, o C/C++ (per esempio, std :: vettore o un array C)? –
perché il tag C? –
sorry rimosso il tag, il suo array c oggettivo con oggetti personalizzati ... "nome" è una delle sue variabili membro, voglio filtrare in base a questo valore "nome". –