使用NSPredicate比较两个数组并返回重复的字符

时间:2013-12-20 13:22:15

标签: ios objective-c nsarray nspredicate

NSArray *MainArray = [NSArray arrayWithObjects:@"A", @"U", @"U", @"U", nil]; // Array already stored 

NSArray *SubArray = [NSArray arrayWithObjects:@"A", @"U", nil]; // Array I passed during runtime

使用这两个数组,我需要从MainArray获取U U

这个概念是我必须从运行时传递的MainArray中删除A U

SampleOutput :
U U

2 个答案:

答案 0 :(得分:2)

您可以使用此方法:

NSMutableArray *mainMutableArray = [NSMutableArray arrayWithArray:MainArray];
for (id instance in SubArray) {
    NSUInteger position = [mainMutableArray indexOfObject:instance];
    if (position != NSNotFound) {
        [mainMutableArray removeObjectAtIndex:position];
    } 
}
MainArray = [NSArray arrayWithArray:mainMutableArray];

答案 1 :(得分:0)

NSSet *set1 = [NSSet setWithArray:MainArray];
NSMutableSet *set2 = [NSMutableSet setWithArray:SubArray];
[set2 minusSet:set1];

试试这段代码..