Я хочу добавить объект в массив, только если массив уже не содержит этого объекта. Как сделать наоборот метода containsObject в NSArray?
Добавить объект в массив, только если объект еще не в нем
Ответы (3)
Используйте NSMutableOrderedSet
< /a>, чей addObject:
делает именно то, что вы хотите:
Добавляет заданный объект в изменяемый упорядоченный набор, если он еще не является членом.
person
Community
schedule
02.03.2012
Абсолютно верно. Набор — это массив плюс уникальность, и это именно то, о чем он просит.
- person matt; 02.03.2012
@matt: набор упорядоченный представляет собой массив плюс уникальный; наборы обычно не сохраняют порядок.
- person jscs; 03.03.2012
Обратите внимание, что NSMutableOrderedSet был представлен только в iOS5, для более ранних платформ вам придется использовать NSMutableSet (это нормально, если вы не заботитесь о сохранении порядка вставки объектов).
- person Kendall Helmstetter Gelner; 03.03.2012
Вот как бы я это сделал:
if (![myArray containsObject:objectToAdd]){
[myArray addObject:objectToAdd];
}
Подробнее здесь:
Обратите внимание, что поскольку метод containsObject запрашивает каждый объект в массиве, при его использовании на больших массивах возникают некоторые проблемы с производительностью.
person
crgt
schedule
03.03.2012
если ваш объект имеет тип NSString
*, вы можете выполнить быстрое перечисление, подобное этому
BOOL found = NO;
for(NSString *object in YourArray)
{
if([object isEqualtoString:@"My text"])
{
found = YES;
}
}
if(!found)
{
//addObject
}
в target-c есть много методов isEqual для разных типов данных
person
Shubhank
schedule
02.03.2012
!
, как и во всех языках C-типа) - person JB Nizet   schedule 02.03.2012