web-dev-qa-db-fra.com

Convertir NSInteger en NSIndexpath

Fondamentalement, je stocke un index d'un tableau dans un NSInteger. J'en ai maintenant besoin en tant que NSIndexpath, j'ai du mal à voir et à trouver un moyen de convertir mon NSInteger en NSIndexpath afin de pouvoir le réutiliser.

38
Dan

Pour un int index:

NSIndexPath *path = [NSIndexPath indexPathWithIndex:index];

Crée un index de l'élément dans le nœud 0 vers lequel pointer selon la référence .

Pour utiliser l'indexPath dans un UITableView, la méthode la plus appropriée est

NSIndexPath *path = [NSIndexPath indexPathForRow:row inSection:section];
88
ageektrapped

Si vous avez besoin d'un NSIndexPath pour un UITableView, vous pouvez utiliser indexPathForRow:inSection: ( référence ). Les chemins d'index transmis à la vue de table doivent contenir exactement deux indices spécifiant la section et la ligne. Un chemin d'index créé avec indexPathWithIndex: ne contient qu'un seul index et ne fonctionnera pas avec une vue de table.

8
albertamg

Utilisez les méthodes ci-dessous de la classe NSIndexPath .

+ (id)indexPathWithIndex:(NSUInteger)index;
+ (id)indexPathWithIndexes:(NSUInteger *)indexes length:(NSUInteger)length;
- (id)initWithIndex:(NSUInteger)index

Utilisez comme ci-dessous et n'oubliez pas de releasemyIndexPath objet après utilisation.

NSIndexPath *myIndexPath = [[NSIndexPath alloc] initWithIndex:[myIntObj intValue]];
3
Jhaliya

Swift 3:

let indexPath = IndexPath(row: 0, section: 0)
2
David Seek