仅当对象尚未存在时才将对象添加到数组

时间:2012-03-02 19:33:35

标签: objective-c ios nsarray

我想仅在数组已经不包含该对象时才将对象添加到数组中。 如何与NSArray中的containsObject方法相反?

3 个答案:

答案 0 :(得分:11)

使用NSMutableOrderedSet方法addObject:完全符合您的要求:

  

将给定对象附加到可变有序集(如果它还不是成员)。

答案 1 :(得分:6)

我是这样做的:

if (![myArray containsObject:objectToAdd]){
[myArray addObject:objectToAdd];
}

这里有更多细节:

https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSArray_Class/NSArray.html

请注意,因为containsObject方法查询数组中的每个对象,所以在较大的数组上使用它时会有一些性能方面的考虑因素。

答案 2 :(得分:0)

如果你的对象是NSString *类型,你可以像这样快速枚举

BOOL found = NO;

for(NSString *object in YourArray)
{
 if([object isEqualtoString:@"My text"])
 {
 found = YES;
 }
}
if(!found)
{
//addObject
}

对于不同的数据类型,objective-c中有许多isEqual方法