Если порядок не имеет значения, самый простой способ - перейти на использование NSMutableSet. Наборы неупорядочены, и NSSets и NSMutableSets могут содержать каждый объект только один раз. Только подсчитанный набор (NSCountingSet) может содержать один и тот же объект несколько раз.
Если порядок имеет значение, продолжайте использовать NSMutableArray и используйте -containsObject:
, чтобы проверить, что объекта еще нет, прежде чем добавить его.
Редактировать: И теперь у Lion NSOrderedSet и NSMutableOrderedSet! Шоколад в моем арахисовом масле! Арахисовое масло в моем шоколаде!
Как и неупорядоченный набор, вы получаете быстрое тестирование членства, запрет дубликатов и, конечно, операции набора (объединение, пересечение и т. Д.). Как и массив, вы получаете упорядоченный доступ, включая перечисление надежного порядка и доступ по индексу.
Итак, если вам нужно отклонить дубликаты, но в то же время сохранить порядок, классы Lion NS {, Mutable} OrderedSet для вас.