从文档目录中删除所有文件后,UITableView没有重新加载

时间:2013-01-30 22:33:27

标签: ios objective-c uitableview nsfilemanager

请在此快速帮助: - )

我已经用我的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];

我还需要尝试其他任何事情吗?

2 个答案:

答案 0 :(得分:0)

我认为您不需要创建NSFileManager的新实例;改为使用:

[NSFileManager defaultManager];

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

答案 1 :(得分:0)

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