iOS Поиск в массиве строки и добавление ее в случае отсутствия - PullRequest
3 голосов
/ 22 сентября 2011

Я пытаюсь пройти через изменяемый массив в поисках заданной строки. Если строка не существует в массиве, я хочу добавить ее РАЗ. У меня сейчас проблема в том, что строка добавляется несколько раз.

Вот код, который я использую

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 Ответ

2 голосов
/ 22 сентября 2011

Вы добавляете новую строку на каждой итерации цикла при перечислении массива, что явно неверно.При перечислении массива просто установите флаг, указывающий, была ли найдена строка, и после цикла объявите вашу строку в массив, если это не так:

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];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...