Как использовать предикат NSArray в objective c?

#ios #objective-c #xcode5 #nsarray

#iOS #objective-c #xcode5 #nsarray

Вопрос:

У меня есть NSArray с некоторыми объектами.

пример:

 NSArray *objects = [NSArray arrayWithObjects:@"one",@"two",@"three",@"one",@"two",@"four",@"five",@"one",nil];
 

в приведенном выше массиве объект @"one" произошел 3 раза.Если я создаю предикат или фильтрую этот объект. он должен отображаться только один раз со всеми оставшимися объектами в новом массиве.

ожидаемый результат:

 (one , two, three, two, four, five).
 

Комментарии:

1. Пожалуйста, используйте правильный английский, а не «txt spk», задавая вопросы. Это упрощает задачу для всех.

Ответ №1:

Вероятно, самый простой способ сделать это — использовать NSSet not NSArray .

 NSArray *objects = @[@"one",@"two",@"three",@"one",@"two",@"four",@"five",@"one"];

NSSet *uniqueObjectSet = [NSSet setWithArray:objects];
 

uniqueObjectSet теперь будет содержать каждое уникальное значение только один раз.

Вы можете вернуться к массиву…

 NSArray *uniqueObjectArray = [uniqueObjectSet allObjects];