2015-03-17 3 views
0

У меня есть 2 NSMutableArray s. К ним относятся:Сравнить 2 NSMutableArrays и удалить повторяющиеся записи

allStudentsMutableArr 
selectedStudentsMutableArr 

allStudentsMutableArr содержит все объекты Student и насчитывает около 100 объектов, сохраненных в нем. Принимая во внимание, что selectedStudentsMutableArr содержит только 10 Student сохраненных в нем записей.

Теперь мне нужно сравнить 2 MutableArrays и удалить все объекты из allStudentsMutableArr, которые присутствуют в selectedStudentsMutableArr изменяемой массиве. Как я могу это сделать ?

+0

возможный duplic [NSArray с NSPredicate, используя NOT IN] (http://stackoverflow.com/questions/8580715/nsarray-with-nspredicate-using-not-in) – Paulw11

+1

'NSMutableSet' и' -minusSet: '... IMHO является лучший способ сделать такую ​​вещь. – holex

ответ

2

Простой

[allStudentsMutableArr removeObjectsInArray:selectedStudentsMutableArr]; 
+0

Спасибо. Это отсортировано. Я скоро приму это в качестве ответа. – Illep

+0

Добро пожаловать и не стесняйтесь обращаться за помощью. –

0

Вы можете также использовать NSPredicate, как показано ниже ... (Gadhiya решение также полезно ..)

Предположим, у вас есть объект с именем студента как один из собственности затем ..// или любое имущество, которое вы хотите сравнить и фильтр ..

NSPredicate *filterPredicate = [NSPredicate predicateWithFormat: @"!(name IN %@)", selectedStudentsMutableArr]; 
NSArray* filteredArray = [allStudebtsMutableArr filteredArrayUsingPredicate:filterPredicate]; 

Надеюсь это поможет вам ..

Смежные вопросы