Hel*_*i0s 7 objective-c uitableview nsarray nsinteger nsindexpath
我有一个带有NSIndexPaths的NSArray
NSArray *array = [self.tableView indexPathsForSelectedRows];
for (int i = 0; i < [array count]; i++) {
NSLog(@"%@",[array objectAtIndex:i]);
}
Run Code Online (Sandbox Code Playgroud)
NSLog返回:
<NSIndexPath 0x5772fc0> 2 indexes [0, 0]
<NSIndexPath 0x577cfa0> 2 indexes [0, 1]
<NSIndexPath 0x577dfa0> 2 indexes [0, 2]
Run Code Online (Sandbox Code Playgroud)
我试图从indexPath获取第二个值只是一个普通的NSInteger
Ita*_*ber 10
您可以使用NSIndexPath的-indexAtPosition:方法来获得最后一个索引:
NSIndexPath *path = ...; // Initialize the path.
NSUInteger lastIndex = [path indexAtPosition:[path length] - 1]; // Gets you the '2' in [0, 2]
Run Code Online (Sandbox Code Playgroud)
在你的情况下,你可以使用以下(正如Josh在他的评论中提到的,我假设你正在使用自定义子类UITableView,因为它没有那个特定的方法(-indexPathsForSelectedRows:)):
NSArray *indexes = [self.tableView indexPathsForSelectedRows];
for (NSIndexPath *path in indexes) {
NSUInteger index = [path indexAtPosition:[path length] - 1];
NSLog(@"%lu", index);
}
Run Code Online (Sandbox Code Playgroud)
那将打印出来0, 1, 2, ....