iOS在数组中搜索字符串,如果缺少则添加它

时间:2011-09-22 10:57:37

标签: ios search for-loop nsmutablearray

我正在尝试通过可变数组搜索给定的字符串。如果数组中不存在该字符串,我想将其添加到ONCE中。我现在遇到的问题是字符串被添加了很多次。

这是我正在使用的代码

NSMutableArray *array;
array=[self.storedData getNames];
if([array count]!=0){
    for (int i=0; i<[array count]; i++) {
        MyUser *user=[array objectAtIndex:i];

        if(![user.firstName isEqualToString:self.nameField.text]){
            [array addObject: object constructor method goes here];
            [self.storedData setNames:array];
        }
    }
}
else{
    [array addObject:object constructor method];
    [self.storedData setNames:array];
}

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

在枚举明显错误的数组时,您将在每个循环迭代中添加新字符串。枚举数组时,只需设置一个标志,指示是否找到字符串,然后在循环之后将字符串添加到数组中,如果不是:

NSMutableArray *array = [self.storedData getNames];

BOOL found = NO;
for (MyUser *user in array){
    if(![user.firstName isEqualToString:self.nameField.text]){
        found = YES;
        break;
    }
}

if (!found){
    [array addObject: object constructor method goes here];
    [self.storedData setNames:array];
}