Как я могу получить конкретные значения из NSIndexPath - PullRequest
7 голосов
/ 07 мая 2011

У меня есть 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

1 Ответ

10 голосов
/ 07 мая 2011

Вы можете использовать NSIndexPath метод -indexAtPosition:, чтобы получить последний индекс:

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

В вашем случае вы можете использовать следующее (как упоминал Джош в своем комментарии, япри условии, что вы работаете с пользовательским подклассом 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, ....

...