0

ここでクイックヘルプをお願いします:-)

UITableViewにドキュメントディレクトリの内容を入力しました。ディレクトリから1つのボタンですべてのファイルを削除できます。

これで、ファイルを削除しても、ユーザーに表示されるリストは同じであり、ビューをリロードするまで、実際にそれらのファイルがなくなっていることが示されます。

私は以下の私のコードに従って使用しました:

[_mainTableView reloadData];
[_mainTableView beginUpdates]; & [_mainTableView endUpdates];

それらはどれも機能していませんが、これらのファイルがなくなったらtableViewを更新する必要があります。

        [_mainTableView beginUpdates];            
        NSFileManager *fileMgr = [[NSFileManager alloc] init];
        NSError *error = nil;

        NSArray *directoryContents = [fileMgr contentsOfDirectoryAtPath:[self filePath] error:&error];
        NSLog(@"FILES - %@", directoryContents);

       if (error == nil) {
            for (NSString *path in _mainDataArray) {
                NSString *fullPath = [[self filePath] stringByAppendingPathComponent:path];
                BOOL removeSuccess = [fileMgr removeItemAtPath:fullPath error:&error];
                if (!removeSuccess) {
                    // Error handling

                }
                else if(removeSuccess)
                {
                    [_mainTableView reloadData];
                }
            }
        }
        [_mainTableView endUpdates];

他に試す必要があることはありますか?

4

2 に答える 2

0

NSFileManager;の新しいインスタンスを作成する必要はないと思います。代わりに以下を使用してください:

[NSFileManager defaultManager];

エラーがnilであるため、最初のif条件if (error == nil)が真になるため、forループ内に入っているとは思わない

于 2013-01-30T22:37:51.880 に答える
0

テーブルに配置されている配列を空にしているわけではありません。配列内のデータを使用してフォルダー内のアイテムを削除していますが、配列からアイテムを削除していないため、もちろん、テーブルにはデータが入力されたままです。

于 2013-01-30T22:47:05.937 に答える