1

いくつかのアイテムを削除しようとしていますが、次の NSException が発生します:

'NSRangeException'、理由: ' * -[__NSArrayM objectAtIndex:]: 境界を超えたインデックス 2 [0 .. 1]'

これが私のコードです:

-(void)deletePressed:(id)sender {

if (data.count > 0) {

    NSString *path = [NSHomeDirectory() stringByAppendingString:@"/Documents/Galeria/"];

    NSFileManager *manager = [NSFileManager defaultManager];

    for (NSIndexPath *indexPath in itensSelecionados) {

        NSString *result = [path stringByAppendingFormat:@"%@", [[manager contentsOfDirectoryAtPath:path error:nil] objectAtIndex:indexPath.row]];

        [manager removeItemAtPath:result error:nil];

    }

    [self viewWillAppear:YES];

}}

誰でも助けることができますか?

4

2 に答える 2

0

逆の行順序で削除を行う必要があります。3 つの行があり、インデックス 0 と 2 の行を削除するとします。

最初にインデックス 0 の行を削除すると、インデックス 2 の行を削除しようとすると、2 行しか残っていないためクラッシュします。

最初にインデックス 2 の行を削除し、次にインデックス 0 を削除すると、すべて問題ありません。

于 2012-11-18T21:02:45.763 に答える