-1

我正在尝试过滤一个NSMutableArray. 按特定国家/地区搜索项目。我已经尝试过NSpredicate效果很好但是我需要重新使用我无法使用的原始数组NSpredicate。所以我正在尝试下面的代码。

问:过滤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];
    }
}
4

1 回答 1

0

使用 - (NSArray *)filteredArrayUsingPredicate:(NSPredicate *)predicate

附带说明一下,在上面的代码中,您可能的意思是这样做 [Country isEqualToString: @"United States"]

作为一个额外的说明 - 不要大写变量和方法名称。只是一种风格,但大写通常是为类名保留的

于 2009-10-09T09:56:29.723 回答