2012-10-11 120 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:)爲零無效(並且不打印警告或錯誤消息)。