0

请在这里快速帮助:-)

我已经用我的 Documents Directory 的内容填充了 UITableView,我可以通过一个按钮从目录中删除所有文件。

现在,当我删除文件时,用户看到的列表仍然是相同的,直到我重新加载视图才会显示这些文件确实已经消失了。

我已经按照下面的代码使用了:

[_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];

第一个 if 条件if (error == nil)将为真,因为错误为 nil,所以我认为它不会进入 for 循环

于 2013-01-30T22:37:51.880 回答
0

您没有清空填充表格的数组。您正在使用数组中的数据删除文件夹中的项目,但没有从数组中删除项目,因此,当然,该表仍被填充。

于 2013-01-30T22:47:05.937 回答