Проверка, содержит ли NSMutableArray значения из другого массива - PullRequest
2 голосов
/ 07 октября 2011

У меня есть 3 NSMutableArray объекты, которые содержат CMTime объекты. Как я могу эффективно пройти через все три из них и выяснить, есть ли дублирующие значения во всех трех? Например, я перебираю одно из значений времени, читаю значение и сохраняю его в x. Теперь я хочу увидеть, встречается ли x (в любой позиции) в двух других массивах. Я пытался найти метод contains, но не смог его найти. Я сталкивался с filterUsingPredicate, но я не уверен, является ли это лучшим способом сделать это или как на самом деле использовать предикаты.

Ответы [ 2 ]

10 голосов
/ 07 октября 2011

Я пытался найти метод содержимого, но не смог его найти.

Использование indexOfObject:

как это:

if ([array indexOfObject:object] != NSNotFound) {
    // object found
}
else {
    // object not found
}
1 голос
/ 07 октября 2011

Вы можете использовать ([yourArray indexOfObject:x] != NSNotFound) вместо отсутствующего contains метода.Однако, если вы делаете это быстро, часто или с большим количеством элементов, вам следует рассмотреть возможность использования NSMutableOrderedSet, который упорядочен как NSMutableArray, но предлагает быстрый и эффективный метод contains, а также позволяетбыстрые операции, такие как объединение и пересечение, которые могут позволить вам перепроектировать ваш алгоритм, чтобы выполнять итерации по вашим элементам гораздо меньше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...