Есть ли способ объединить два NSMutableArray в объекте c?
У меня есть два NSMutableArray, заполненных объектом данных. как сравнить и массив, и слияние, если обнаружено какое-либо изменение.
например:
Array1= index(0) userName = {'a',1,'address'}
index(1) userName = {'b',2,'address'}
Array2= index(0) userName = {'c',3,'address'}
index (1) userName = {'b',2,'address'}
Результат:
Array= index(0) userName = {'a',1,'address'}
index (1) userName = {'b',2,'address'}
index(2) userName = {'c',3,'address'}
Пожалуйста, помогите
Ответы
Ответ 1
Простым способом является использование множеств:
NSMutableSet *set = [NSMutableSet setWithArray:array1];
[set addObjectsFromArray:array2];
NSArray *array = [set allObjects];
Хотя вам придется сначала сортировать array
.
(N.B., я использовал имена нижних регистров для переменных, как обычно принято).
Ответ 2
NSArray *array1, *array2;
...
MSMutableArray *result = [array1 mutableCopy];
for (id object in array2)
{
[result removeObject:object]; // make sure you don't add it if it already there.
[result addObject:object];
}