开发者

How do I get specific values from a NSIndexPath

开发者 https://www.devze.com 2023-03-04 17:55 出处:网络
I have a NSArray with NSIndexPaths inside of it NSArray *array = [self.tableView indexPathsForSelectedRows];

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 inde开发者_开发百科xes [0, 1]
<NSIndexPath 0x577dfa0> 2 indexes [0, 2]

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


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, ....

0

精彩评论

暂无评论...
验证码 换一张
取 消