2012-04-04 3 views
-1

Ich habe 2 Arrays,Wie entfernt man die Objekte eines NSArray von einem anderen NSMutableArray?

Ich möchte die eine von der anderen entfernen.

Ich kann removeObject nicht verwenden: weil die Zeiger unterschiedlich sind.

ich Entfernen von Objekten basierend auf deren Eigenschaften (x.a == y.a)

Wie entferne ich das Objekt auf seine Eigenschaften von dem anderen Array basiert?

Danke,

+0

Was ist Ihre Frage? Du machst was du wolltest. – Vignesh

+0

bearbeitet meine Frage – nurxyz

+0

Pflege, um eine Probe zu geben? – Vignesh

Antwort

0

dieses Beispiel

for(int i = 0; i< firstArray.count ; i++){ 
    NSString *first = [firstArray objectAtIndex:i]; 
    for(int j = 0; j< secondArray.count; j++){ 
     NSString *second = [econdArray objectAtIndex:j]; 
     if([first isEqualToString:second]){ 

     /// Do your methods 

     } 
    } 
} 
0

Einzel for-Schleife ist ausreichend, da eine andere Idee, die RemoveObject Methode überschrieben werden entweder durch Subclassing oder machen eigene Kategorie sein würde.

0
BOOL GotOne = NO; 

for(int i =0; i < mutableArray.count; i++) 
{ 
    NSArray *temp = [mutableArray objectAtIndex:i]; 

    for(int j = 0; j < temp.count; j++) 
    { 
     //Do what u want with temp or check any condition 
     if(success) 
     { 
      GotOne = YES; 
      break; 
     } 
    } 
    if(GotOne) 
     { 
      [mutableArray removeObjectAtIndex:i]; 
      GotOne = NO; 
     } 
} 
4

versuchen, diese

NSMutableArray *arrFirst = [NSMutableArray arrayWithObjects:[NSDictionary dictionaryWithObjectsAndKeys:@"1",@"topic_id",@"abc",@"topic_name",nil], 
        [NSDictionary dictionaryWithObjectsAndKeys:@"2",@"topic_id",@"opq",@"topic_name",nil], 
        [NSDictionary dictionaryWithObjectsAndKeys:@"3",@"topic_id",@"xyz",@"topic_name",nil], nil]; 

NSArray *arrSec = [NSArray arrayWithObject:[NSDictionary dictionaryWithObjectsAndKeys:@"2",@"topic_id",@"opq",@"topic_name",nil]]; 

NSArray *temp = [arrFirst filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"SELF IN %@",arrSec]]; 
[arrFirst removeObjectsInArray:temp]; 
NSLog(@"%@",arrFirst);