Фильтрация индекса NSMutableArray за пределами границ - PullRequest
0 голосов
/ 09 октября 2009

Я пытаюсь отфильтровать NSMutableArray. Поиск в массиве товаров по определенной стране. Я попытался NSpredicate, который прекрасно работает, однако мне нужно повторно использовать исходный массив, который я не могу с NSpredicate. Итак, я пытаюсь код ниже.

Q. Каков наилучший способ фильтрации NSMutableArray с сохранением исходного массива без изменений?

// Следующий код работает

filteredArray = [[NSMutableArray alloc] init];
unsigned int i;
for (i = 0; i < [appDelegate.arrayToBeFiltered count]; i++) {
    id session = [appDelegate.ads objectAtIndex: i];
    id Country = [[appDelegate.arrayToBeFiltered objectAtIndex: i] TheCountry];
    [filteredArray addObject: session];

Однако, когда я добавляю оператор if, как показано ниже, я получаю индекс за пределами

filteredArray = [[NSMutableArray alloc] init];
unsigned int i;
for (i = 0; i < [appDelegate.arrayToBeFiltered count]; i++) {
    id session = [appDelegate.ads objectAtIndex: i];
    id Country = [[appDelegate.arrayToBeFiltered objectAtIndex: i] TheCountry];
    if (Country == @"United States"){
        [filteredArray addObject: session];
    }
}

1 Ответ

0 голосов
/ 09 октября 2009

Use - (NSArray *) FilterArrayUsingPredicate: (NSPredicate *) предикат

Как примечание, в приведенном выше коде вы, вероятно, хотите сделать это [Country isEqualToString: @ "United States"]

В качестве дополнительного примечания - не используйте заглавные буквы и имена методов. Просто стиль, но заглавные буквы обычно зарезервированы для имен классов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...