Convert NSInteger to NSIndexpath

39,289

Solution 1

For an int index:

NSIndexPath *path = [NSIndexPath indexPathWithIndex:index];

Creates Index of the item in node 0 to point to as per the reference.

To use the indexPath in a UITableView, the more appropriate method is

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

Solution 2

If you need a NSIndexPath for a UITableView, you can use indexPathForRow:inSection: (reference). Index paths passed to table view must contain exactly two indices specifying the section and row. An index path created with indexPathWithIndex: only contains one index and won't work with a table view.

Solution 3

Use below methods of NSIndexPath class.

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

Use as below and also Don't forget to release myIndexPath object after using.

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

Solution 4

Swift 3:

let indexPath = IndexPath(row: 0, section: 0)
Share:
39,289
Dan
Author by

Dan

Updated on September 16, 2020

Comments

  • Dan
    Dan almost 4 years

    Basically I am storing an index of an array in a NSInteger. I now need it as an NSIndexpath, I'm struggling to see and find a way to convert my NSInteger to NSIndexpath so I can reuse it.

  • Dan
    Dan about 13 years
    Thanks. Can I still do path.row or am I getting my eiders crossed?