2012-08-29 13 views
16

Ich habe zwei Arrays. Array1 enthält 15 Objekte und Array2 enthält 4 Objekte. Es gibt 2 gemeinsame Objekte aus beiden Arrays, ich möchte nur das Ergebnis dieser 2 Objekte erhalten.Wie schneidet man zwei Arrays in Ziel C?

Es sollte wie Schnittpunkt von zwei Set, aber wie in Objective C für Array ..? Bitte helfen Sie. Vielen Dank.

+4

Was ist 2 Sets mit Ihrem Arrays erstellen und dann die Kreuzung über den Set Aufruf? –

+1

siehe http://StackOverflow.com/a/1475656/1030951 – HarshIT

+0

Dank @Hadley und Ricard, ich habe die Lösung der Filterung meines Ergebnisses mit NSSet. Habe mein Ergebnis Array .. !! – Dishant

Antwort

47

Mit NSMutableSet

NSMutableSet *set1 = [NSMutableSet setWithArray: array1]; 
NSSet *set2 = [NSSet setWithArray: array2]; 
[set1 intersectSet: set2]; 
NSArray *resultArray = [set1 allObjects]; 
+1

Hier sollte set1 NSMutableSet sein, weil NSMutableSet die Erweiterung intersectSet-Methode hat –

+2

Wie gut funktioniert das, wenn diese Arrays ziemlich groß sind, wie 2000 Objekte jeweils? Ist das eine skalierbare Lösung? – zumzum

+0

Es lohnt sich zu sagen, warum man NSSet aus Effizienzgründen benutzt! Der Code, der NSSets verwendet, wird schneller (bessere Laufzeit-Effizienz) als die äquivalente Schleife für die Schleife ausgeführt. – occulus