1

2つの異なるNSMutabelArrayArrOneとArrTwoがあります。Letsay ArrOne = A、B、C、D ArrTwo = C、D、X、Y。したがって、ArrTwoの値がArrOneと同じかどうかを確認し、ArrOneと同じでない場合はArrTwoからアイテムを削除する必要があります。この場合、ArrTwoからXとYを削除する必要があります。アイデアをください。

4

3 に答える 3

4
NSMutableSet *set = [NSMutableSet setWithArray:arrOne];
[set intersectSet:[NSSet setWithAray:arrTwo];
return [set allObjects];
于 2013-03-08T02:48:23.017 に答える
3

次のように、indexesOfObjectsPassingTestを使用してこれを行うことができます。

    NSMutableArray *a = [@[@"A",@"B",@"C",@"D"] mutableCopy];
    NSMutableArray *b = [@[@"C",@"D",@"X",@"Y"] mutableCopy];

    NSIndexSet *indxs = [b indexesOfObjectsPassingTest:^BOOL(NSString *obj, NSUInteger idx, BOOL *stop) {
        return ![a containsObject:obj];
    }];

    [b removeObjectsAtIndexes:indxs];
于 2013-03-08T04:04:18.930 に答える
1

私は解決策を見つけました、そしてそれはうまくいきます

for (int i=0; i< arrTwo.count; i++)
{ 
    if(![arrOne containsObject:[arrTwo objectAtIndex:i]])
    {
         //do action
         NSLog(@"do delete %@",[arrTwo objectAtIndex:i]);
     }
}

ありがとう!

于 2013-03-11T02:23:49.343 に答える