过滤NSMutableArray索引超出边界问题

时间:2009-10-09 09:47:31

标签: iphone nsmutablearray

我正在尝试过滤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 :(得分:0)

使用 - (NSArray *)filteredArrayUsingPredicate :( NSPredicate *)谓词

作为旁注,在上面的代码中你可能意味着这样做[Country isEqualToString:@“United States”]

作为额外的注意事项 - 不要大写变量和方法名称。只是一种风格的东西,但大写通常保留给类名