如何创buildNSIndexPath所需的“索引”:indexPathWithIndexes:length:

创build具有一个或多个节点的索引path的类方法是:

+ (id)indexPathWithIndexes:(NSUInteger *)indexes length:(NSUInteger)length 

我们如何创build第一个参数所需的“索引”?

文档列出它作为索引数组来构成索引path,但它期望一个(NSUinteger *)。

要创build一个1.2.3.4的索引path,它只是一个[1,2,3,4]的数组?

你是对的。 你可以像这样使用它:

 NSUInteger indexArr[] = {1,2,3,4}; NSIndexPath *indexPath = [NSIndexPath indexPathWithIndexes:indexArr length:4]; 

在iOS上,您也可以使用NSIndexPath UIKit Additions (在UITableView.h中声明)中的此方法:

 + (NSIndexPath*) indexPathForRow:(NSUInteger)row inSection:(NSUInteger)section 

你的假设是正确的。 这与NSUInteger的C数组一样简单。 长度参数是索引数组中元素的数量。

C中的数组通常被认为是一个带有长度参数的指针(在这个例子中是NSUInteger *),或者是Cstring(只是一个char数组)的\ 0。

我在两行代码中做了这个

  NSMutableArray *indexPaths = [[NSMutableArray alloc] init]; for (int i = firstIndexYouWant; i < totalIndexPathsYouWant; i++) [indexPaths addObject:[NSIndexPath indexPathForRow:i inSection:0]]; 

简洁,干净,可读。 免费代码,不要敲它。