How do I get specific values from a NSIndexPath

13,518

You can use NSIndexPath's -indexAtPosition: method to get the last index:

NSIndexPath *path = ...; // Initialize the path.
NSUInteger lastIndex = [path indexAtPosition:[path length] - 1]; // Gets you the '2' in [0, 2]

In your case, you can use the following (as Josh mentioned in his comment, I'm assuming you're working with a custom subclass of UITableView, because it doesn't have that specific method (-indexPathsForSelectedRows:)):

NSArray *indexes = [self.tableView indexPathsForSelectedRows];
for (NSIndexPath *path in indexes) {
    NSUInteger index = [path indexAtPosition:[path length] - 1];
    NSLog(@"%lu", index);
}

That will print out 0, 1, 2, ....

Share:
13,518
Heli0s
Author by

Heli0s

Updated on June 04, 2022

Comments

  • Heli0s
    Heli0s about 2 years

    I have a NSArray with NSIndexPaths inside of it

    NSArray *array = [self.tableView indexPathsForSelectedRows];
    
    for (int i = 0; i < [array count]; i++) {
        NSLog(@"%@",[array objectAtIndex:i]);
    }
    

    The NSLog returns this:

    <NSIndexPath 0x5772fc0> 2 indexes [0, 0]
    <NSIndexPath 0x577cfa0> 2 indexes [0, 1]
    <NSIndexPath 0x577dfa0> 2 indexes [0, 2]
    

    I am trying to get the second value from the indexPath into just a plain NSInteger

  • netwire
    netwire almost 10 years
    You can also do path.row to get the value at the index