我有一个数组(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];
}
}
}
答案 0 :(得分:0)
我准备好了,猜猜你已经宣布 _africa
,_asia
,_centralAmerica
和_southAmerica
是NSMutableArray *
,但你还没有初始化。也就是说,你没有写过这样的代码:
_africa = [[NSMutableArray alloc] init];
_asia = [[NSMutableArray alloc] init];
_centralAmerica = [[NSMutableArray alloc] init];
_southAmerica = [[NSMutableArray alloc] init];
创建对象时,您的实例变量设置为nil。将消息(如addObject:
)发送到nil无效(并且不会打印警告或错误消息)。