我試圖通過嘗試轉換我使用C編寫的程序來學習Objective C。該程序適用於大2加維數組並對它們進行計算,所以我需要能夠在UI上以表格格式顯示二維數組。最好的辦法是將我的C風格數組逐行轉換爲NSMutableArrays,然後將另一個NSMutableArray中的「row」NSMutableArray作爲「堆棧」存儲到NSTableView中。 (如果有更好的方法,請告訴我。)在NSTableView中顯示2D陣列
我遇到的問題是我似乎無法讓它們存儲在arrayOfArrays中。它只是空。我確信我正在做一個愚蠢的noob錯誤,我認爲它與我調用構造函數的方式有關,但我無法弄清楚。
這裏是我的代碼:
int grid[3][3] = {{1,2,3},{4,5,6},{7,8,9}};
NSMutableArray *arrayOfArrays;
int x=0;
-(void)awakeFromNib
{
NSMutableArray *array1 = [[NSMutableArray alloc]init];
NSMutableArray *array2 = [[NSMutableArray alloc]init];
NSMutableArray *array3 = [[NSMutableArray alloc]init];
for (int y=0; y < 3; y++) {
[array1 addObject:[NSNumber numberWithInt:grid[x][y]]];
}
x++;
for (int y=0; y < 3; y++) {
[array2 addObject:[NSNumber numberWithInt:grid[x][y]]];
}
x++;
for (int y=0; y < 3; y++) {
[array3 addObject:[NSNumber numberWithInt:grid[x][y]]];
}
[arrayOfArrays addObject:array1];
[arrayOfArrays addObject:array2];
[arrayOfArrays addObject:array3];
}
- (NSInteger)numberOfRowsInTableView:(NSTableView *)aTableView
{
return [arrayOfArrays count];
}
- (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex
{
return [arrayOfArrays objectAtIndex:rowIndex];
}
@end
哦,這個對象是一個NSTableViewSource,它是對NSTableView的數據源。
謝謝!這回答我的原始問題。 – 2013-03-20 17:24:46