可能重复:comparing-two-arrays
我有两个NSArray,我想用第二个数组中的对象创建一个新数组,但不是 包含在第一个数组中。
Example:
NSMutableArray *firstArray = [NSMutableArray arrayWithObjects:@"Bill", @"Ben", @"Chris", @"Melissa", nil];
NSMutableArray *secondArray = [NSMutableArray arrayWithObjects:@"Bill", @"Paul", nil];
The resulting array should be:
[@"Paul", nil];
我通过双循环将对象与内部对象进行比较来解决这个问题。
有更好的解决方案吗?
答案 0 :(得分:100)
[secondArray removeObjectsInArray:firstArray];
这个想法取自another answer。
答案 1 :(得分:10)
如果数组中的重复项不很重要,您可以使用minusSet:
的{{1}}操作:
NSMutableSet
答案 2 :(得分:1)
我想比较来自两个NSArray的图像。 One Array,我是从Core Database获得的。其次我有常量数组对象。
我想知道第二个数组的对象是否存在于Core数据库中。
这是我用过的代码。
// All object from core data and take into array.
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc]initWithEntityName:@"student"];
NSArray *dbresult = [[NSArray alloc]init];
NSError *error;
@try {
dbresult = [context executeFetchRequest:fetchRequest error:&error];
}
@catch (NSException *exception) {
NSString *logerror = [NSString stringWithFormat:@"error in fetching Rooms from coredata = %@",exception.description];
NSLog(logerror)
}
@finally {
}
/*
Get Unused images from list
*/
NSMutableArray *usedImages = [dbresult valueForKey:@"roomImageLocalPath"];
NSMutableSet *fSet = [NSMutableSet setWithArray:usedImages];
NSMutableSet *sSet = [NSMutableSet setWithCapacity:[newImages count]];
[sSet addObjectsFromArray:newImages];
[sSet minusSet:fSet];
NSArray *unusedImages = [secondSet allObjects];
NSLog(@"unusedImages %@",unusedImages);