NSFilemanager не сохраняет файл, когда textFieldDidEndEditing вызывается во второй раз - PullRequest
0 голосов
/ 20 сентября 2011

У меня проблемы с обновлением tableView.

В табличном представлении всплывающего окна, управляемого rootviewcontroller, отображаются некоторые элементы в каталоге моих документов. В detailViewcontroller я меняю имена этих файлов с помощью NSFilemanager. Независимо от того, что я делаю, tableView не будет отображать новые. Я смогу их увидеть, если закрою приложение и снова открою. На данный момент я пытаюсь использовать уведомления, но это не работает…

EDIT

Я зарегистрировал свой каталог документов, это определенно не проблема 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 ]

1 голос
/ 20 сентября 2011
[self.tableView initWithFrame:self.tableView.frame style:UITableViewStyleGrouped];

Эта строка выглядит несколько подозрительно.Как вы строите свой просмотр таблицы?

0 голосов
/ 21 сентября 2011

Это работает, когда я набираю что-то. Но если я наберу что-нибудь во второй раз, не выбрав ничего в tableView, fileManager не переместит элемент в путь. Какие-либо предложения? Это не похоже на проблему, связанную с tableView.

Я также подумал, что мне нужно установить:

currentFilePath = newPath;

Но это дало мне EXC_BAD_ACCESS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...