0

我有一个数组(tempList),其中填充了从 sqlite 数据源读取的记录。我想根据“区域”对这些记录进行排序。所以我设置了以下 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];
        }
    }
}
4

1 回答 1

0

我会冒昧地猜测你已经声明 _africa了, _asia,_centralAmerica_southAmericato be NSMutableArray *,但你还没有初始化它们。也就是说,您还没有编写任何这样的代码:

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

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

于 2012-10-11T03:07:04.553 回答