我是新的 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:
检查它是否属于数组1:
for (id object in array2)
{
if ([array1 containsObject:object])
{
// change your settings here
}
您还可以使用 创建一个新数组filteredArrayUsingPredicate:
,或使用 获取匹配对象的索引路径indexesOfObjectsPassingTest:
。您还没有说阵列中可能有多少对象,所以我不知道性能是否会成为问题。
n*n
我认为在这种情况下您必须进行搜索。遍历 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
}