2012-10-11 78 views
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]; 
     } 
    } 
} 

回答

0

我要出去肢体和揣测你宣布_africa_asia_centralAmerica,并_southAmericaNSMutableArray *,但是你有没有初始化他们。也就是说,你没有写下类似这样的代码:

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

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