如何比较数组? 并改变属性?

我是新的iOS开发人员,我想比较和更改属性

Array1 =(object1,object2,object3,object4)Array2 =(object2,object4,object5,object8)

比较Array1和Array2如果Array2中有相同的对象,请更改对象中的属性。

在这种情况下,Object2和Object4应该被改变。

我应该怎么做??

请帮帮我!!

你可以使用这一套

NSMutableSet *array1Set = [NSMutableSet setWithArray:array1]; NSSet *array2Set = [NSSet setWithArray:array2]; [array1Set intersectSet:array2Set]; 

你现在只有两个数组中的对象。 现在你可以在集合上使用enumerateObjectsUsingBlock:来操纵对象,或者将集合转换回数组NSArray *filteredArray = [array1Set allObjects]

您可以使用快速枚举来传递数组2,然后使用containsObject:来检查它是否属于array1:

 for (id object in array2) { if ([array1 containsObject:object]) { // change your settings here } 

您还可以使用filteredArrayUsingPredicate:创build一个新数组,或者使用indexesOfObjectsPassingTest:获取匹配对象的索引path。 你还没有说出arrays中有多less物体,所以我不知道性能是否会成为问题。

在这种情况下,我认为你必须进行n*nsearch。 遍历Array1中的每个对象,都有一个嵌套循环,并将Array2中的每个项目与当前对象(在Array1中)进行比较。 如果他们是平等的,那么改变你的属性。

 for (int i = 0; i < [array1 count]; i++) for (int j = 0; j < [array2 count]; j++) if ([array1 objectAtIndex:i] == [array2 objectAtIndex:j]) { // do yo thangs }