C で作成したプログラムを変換して、Objective C を学習しようとしています。このプログラムは、2 次元以上の大きな配列で動作し、それらに対して計算を行うため、2D 配列を表形式で表示できる必要があります。 UIで。これを行うための最善の方法は、C スタイルの配列を行ごとに NSMutableArray に変換し、「行」の NSMutableArray を別の NSMutableArray に「行のスタック」として格納して NSTableView に渡すことです。(もっといい方法があれば教えてください。)
私が抱えている問題は、それらをarrayOfArraysに格納できないように見えることです。それはただのヌルです。私は愚かな初心者のエラーを犯していると確信しており、コンストラクターの呼び出し方法に関係があると思いますが、理解できません。
これが私のコードです:
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 の dataSource です。