7

我有一个 NSArray,里面有 NSIndexPaths

NSArray *array = [self.tableView indexPathsForSelectedRows];

for (int i = 0; i < [array count]; i++) {
    NSLog(@"%@",[array objectAtIndex:i]);
}

NSLog 返回:

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

我试图将 indexPath 中的第二个值变成一个普通的 NSInteger

4

1 回答 1

10

您可以使用NSIndexPath'-indexAtPosition:方法获取最后一个索引:

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

在您的情况下,您可以使用以下内容(正如 Josh 在他的评论中提到的,我假设您正在使用 的自定义子类UITableView,因为它没有特定的方法(-indexPathsForSelectedRows:)):

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

那将打印出来0, 1, 2, ...

于 2011-05-07T02:45:42.183 回答