当第二次调用textFieldDidEndEditing时,NSFilemanager不保存文件

时间:2011-09-20 13:55:54

标签: ios ipad file uitableview reload

我在更新tableView时遇到了问题。

rootviewcontroller管理的弹出窗口的tableView中,显示了我的文档目录中的一些项目。在detailViewcontroller中,我使用NSFilemanager更改了这些文件的名称。无论我做什么,tableView都不会显示新的。如果我关闭应用程序并再次打开它,我会看到它们。目前,我尝试使用通知,但它不起作用......

修改

我记录了我的文档目录,它绝对不是一个tableView问题,而且,它运行良好,但第二次输入一些文本,没有任何反应......

DetailViewController

- (void)textFieldDidEndEditing:(UITextField *)tf
{
    textLabel.text = textField.text;
    NSString* newName = textLabel.text;
    newName = [newName stringByAppendingPathExtension:@"txt"];
    NSString* newPath = [[currentFilePath stringByDeletingLastPathComponent] stringByAppendingPathComponent:newName]; 
    NSLog(@"%@",newPath);
    [[NSFileManager defaultManager] moveItemAtPath:currentFilePath toPath:newPath error:nil];
    [[NSNotificationCenter defaultCenter] postNotificationName:@"DataSaved" object:nil];

}

RootViewController的

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self.tableView initWithFrame:self.tableView.frame style:UITableViewStyleGrouped];
    self.clearsSelectionOnViewWillAppear = NO;
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(dataSaved:) name:@"DataSaved" object:nil];
}

- (void)dataSaved:(NSNotification *)notification
{
    [self loadDirectoryContents];
    [self.tableView reloadData];
}

2 个答案:

答案 0 :(得分:1)

[self.tableView initWithFrame:self.tableView.frame style:UITableViewStyleGrouped];

这条线看起来有点可疑。你是如何构建你的tableview的?

答案 1 :(得分:0)

当我输入某些内容时,它会有效。但是如果我第二次输入内容而没有在tableView中选择任何内容,则fileManager不会将项目移动到路径中。有什么建议?它似乎不是一个与tableView相关的问题。

我还以为我需要设置:

currentFilePath = newPath;

但这给了我一个EXC_BAD_ACCESS。