1. 程式人生 > >iOS中的二維陣列

iOS中的二維陣列

 

    首先我們知道OC中是沒有二維陣列的,二維陣列是通過一位陣列的巢狀實現的,但是別忘了我們有字面量,實際上可以和C/C++類似的簡潔地建立和使用二維陣列。這裡總結了建立二維陣列的兩種方法以及陣列的訪問方式。

http://images.cnitblog.com/i/569008/201405/191628561371344.jpg

    通過字面量建立和使用二維陣列(推薦)

    // 1.字面量建立二維陣列並訪問(推薦) NSArray *array2d = @[ @[@11,@12,@13], @[@21,@22,@23], @[@31,@32,@33] ]; // 字面量訪問方式(推薦) NSLog(@"array2d[2][2]:%@",array2d[2][2]); // 陣列物件函式訪問 NSLog(@"array2d[2][2]:%@",[[array2d objectAtIndex:2] objectAtIndex:2]); 列印結果: 2017-01-05 21:59:49.694 SingleView[10483:506166] array2d[2][2]:33 2017-01-05 21:59:49.695 SingleView[10483:506166] array2d[2][2]:33 通過巢狀原本的陣列物件使用二維陣列 // 2.另外一種迴圈巢狀穿件二維陣列的方式 NSMutableArray *mulArrayD1 = [[NSMutableArray alloc]init]; // 第一維陣列 // 新增第二維 for(NSUInteger i = 1;i <= 3; i++) { NSArray *arrayD2 = @[@(i*10+1), @(i*10+2), @(i*10+3)]; [mulArrayD1 addObject:arrayD2]; } // 字面量訪問方式(推薦) NSLog(@"array2d[2][2]:%@",mulArrayD1[2][2]); // 陣列物件函式訪問 NSLog(@"array2d[2][2]:%@",[[mulArrayD1 objectAtIndex:2] objectAtIndex:2]); 列印結果: 2017-01-05 21:59:49.695 SingleView[10483:506166] array2d[2][2]:33 2017-01-05 21:59:49.695 SingleView[10483:506166] array2d[2][2]:33 問題: OC中是否有二維陣列,如何實現? OC中沒有二維陣列,但可以通過一維陣列的巢狀實現。