快速枚举和选择对象

时间:2012-10-11 03:02:49

标签: nsarray enumeration

我有一个数组(tempList),其中填充了从sqlite数据源读取的记录。我想根据'region'对这些记录进行排序。所以我设置了以下NSMUtableArrays:_Asia,_Africa,_CentralAmerica,_southAmerica。

该方法编译时没有任何错误。如果'if'语句返回true,它将执行'addObject',但元素不会添加到数组中。

- (void) sortIntoRegions: tempList
{
    for (beans *arrayElement in tempList) {
        NSLog(@"region: %@", arrayElement.region);
        if ([arrayElement.region isEqualToString:@"Africa"]) {
            [_africa addObject:arrayElement.name];
        } else if ([arrayElement.region isEqualToString: @"Asia & South Pacific"]) {
            [_asia addObject:arrayElement.name];           
        }
        else if ([arrayElement.region isEqualToString: @"Central America"]) {
            [_centralAmerica addObject:arrayElement];
        } else if ([arrayElement.region isEqualToString: @"South America"]) {
            [_southAmerica addObject:arrayElement];
        }
    }
}

1 个答案:

答案 0 :(得分:0)

我准备好了,猜猜你已经宣布 _africa_asia_centralAmerica_southAmericaNSMutableArray *,但你还没有初始化。也就是说,你没有写过这样的代码:

_africa = [[NSMutableArray alloc] init];
_asia = [[NSMutableArray alloc] init];
_centralAmerica = [[NSMutableArray alloc] init];
_southAmerica = [[NSMutableArray alloc] init];

创建对象时,您的实例变量设置为nil。将消息(如addObject:)发送到nil无效(并且不会打印警告或错误消息)。