我正在寻找一个多维数组的例子。我有一个拇指尾数组(例如9个)和一个前排4个拇指的表格视图,给了我3行。我想创建一个新的多维数组,它将包含3行,每行包含4个数组。
在过去的三个小时里,我看了很多例子,但他们似乎都建议使用C风格的编码,我不确定如何初始化它们,或者是否需要释放它们。另外,我在一个表视图中使用它,所以我不确定是否需要使用NSarray,或者是否可以使用C风格的数组。感谢您提出的任何建议。
thumbnailarr[0][0] = 'img1.png';
thumbnailarr[0][1] = 'img2.png';
thumbnailarr[0][2] = 'img3.png';
thumbnailarr[0][3] = 'img4.png';
thumbnailarr[1][0] = 'img5.png';
thumbnailarr[1][1] = 'img6.png';
thumbnailarr[1][2] = 'img7.png';
thumbnailarr[1][3] = 'img8.png';
thumbnailarr[2][0] = 'img9.png';发布于 2011-04-06 17:13:42
多维数组本质上是数组的数组,NSArray可以将NSArrays作为其内容。例如:
NSArray *thumbs= [NSArray arrayWithObjects:
[NSArray arrayWithObjects: @"img1.png",@"img2.png",@"img3.png",@"img4.png",nil],
[NSArray arrayWithObjects: @"img5.png",@"img6.png",@"img7.png",@"img8.png",nil],
[NSArray arrayWithObject: @"img9.png"],nil];访问方式如下:
[[thumbs objectAtIndex:i] objectAtIndex:j]; //same as thumbs[i][j]发布于 2011-04-06 17:25:52
objective-C中没有特殊的多维数组,但您也可以使用一维数组。
然后,您将使用基于模数的计算将所需的行和列索引转换为数组索引:您将使用NSIndexPath来描述多维数组中的“坐标”。
NSUInteger nRows = 4;
NSUInteger nCols = 3;
-(NSInteger)indexForIndexPath:(NSIndexPath *)indexPath
{
// check if the indexpath is correct with two elements (row and col)
if ([indexPath length]!= 2) return -1;
NSUIntegers indexes[2];
[indexPath getIndexes:indexes];
return indexes[0]*nCols+indexes[1];
}
-(NSIndexPath *)indexPathForIndex:(NSInteger)index
{
NSInteger indexes[2];
NSInteger indexes[0] = index/nCols;
NSInteger indexes[1] = index%nCols;
return [NSIndexPath indexPathWithIndexes:indexes length:2]
}https://stackoverflow.com/questions/5563692
复制相似问题