La méthode de classe pour créer un chemin d'index avec un ou plusieurs nœuds est la suivante:
+ (id)indexPathWithIndexes:(NSUInteger *)indexes length:(NSUInteger)length
Comment créer les "index" requis dans le premier paramètre?
La documentation l'a répertorié comme Tableau d'index pour constituer le chemin d'index mais il attend un (NSUinteger *).
Pour créer un chemin d'index de 1.2.3.4, s'agit-il simplement d'un tableau de [1,2,3,4]?
Vous avez raison. Vous pouvez l'utiliser comme ceci:
NSUInteger indexArr[] = {1,2,3,4};
NSIndexPath *indexPath = [NSIndexPath indexPathWithIndexes:indexArr length:4];
Sur iOS, vous pouvez également utiliser cette méthode à partir de NSIndexPath UIKit Additions (déclaré dans UITableView.h):
+ (NSIndexPath*) indexPathForRow:(NSUInteger)row inSection:(NSUInteger)section
Votre hypothèse est correcte. C'est aussi simple qu'un tableau C de NSUInteger. Le paramètre de longueur est le nombre d'éléments dans le tableau d'index.
Les tableaux en C sont souvent identifiés comme un pointeur (dans ce cas NSUInteger *) avec un paramètre de longueur ou un terminateur connu tel que\0 pour les chaînes C (qui n'est qu'un tableau de caractères).
Je l'ai fait en 2 lignes de code
NSMutableArray *indexPaths = [[NSMutableArray alloc] init];
for (int i = firstIndexYouWant; i < totalIndexPathsYouWant; i++) [indexPaths addObject:[NSIndexPath indexPathForRow:i inSection:0]];
Court, propre et lisible. Code libre, ne le frappez pas.