objective-c - plataforma - xcode
Cómo crear los "índices" requeridos para NSIndexPath: indexPathWithIndexes: length: (4)
En iOS, también puede usar este método desde NSIndexPath UIKit Additions (declarado en UITableView.h):
+ (NSIndexPath*) indexPathForRow:(NSUInteger)row inSection:(NSUInteger)section
El método de clase para crear una ruta de índice con uno o más nodos es:
+ (id)indexPathWithIndexes:(NSUInteger *)indexes length:(NSUInteger)length
¿Cómo creamos los "índices" requeridos en el primer parámetro?
La documentación lo listó como una matriz de índices para componer la ruta de índice, pero está esperando un (NSUinteger *).
Para crear una ruta de índice de 1.2.3.4, ¿es simplemente una matriz de [1,2,3,4]?
Estás en lo correcto. Puede usarlo así:
NSUInteger indexArr[] = {1,2,3,4};
NSIndexPath *indexPath = [NSIndexPath indexPathWithIndexes:indexArr length:4];
Hice esto en 2 líneas de código
NSMutableArray *indexPaths = [[NSMutableArray alloc] init];
for (int i = firstIndexYouWant; i < totalIndexPathsYouWant; i++) [indexPaths addObject:[NSIndexPath indexPathForRow:i inSection:0]];
Corto, limpio y legible. Código gratuito, no lo golpees.
Tu suposición es correcta. Es tan simple como una matriz C de NSUInteger. El parámetro de longitud es la cantidad de elementos en la matriz de índices.
Las matrices en C a menudo se identifican como un puntero (en este caso NSUInteger *) con un parámetro de longitud o un terminador conocido como / 0 para cadenas C (que es solo una matriz char).