7

内部に NSIndexPaths を持つ NSArray があります

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 から 2 番目の値を単純な 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 に答える