2013-02-14 2 views
1

У меня есть UITableView и в каждой строке есть имя array в plist. Это означает, что когда я пытаюсь использовать обычный способ удаления, чтобы удалить метод:iOS Проведите по удалению массива в plist из UITableView

[tableView deleteRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationAutomatic] 

Приложение аварийно завершает работу. Как я могу сказать, что удаление удаляется, чтобы найти массив в plist и удалить его?

ответ

1

Недостаточно удалить строку, отображаемую в виде таблицы. Вы также должны удалить элемент из массива данных. Предположительно у вас есть NSMutableArray, который читается в plist в начале. (Если это просто NSArray, изменить его на изменяемые!)

Только после удаления строки, удалить данные из массива

[myDataArray removeObjectAtIndex:indexPath.row]; 

Если у вас есть разделы, сначала придется выяснить положение вашего объекта в массиве, но принцип тот же.

Теперь вы можете дополнительно записать изменения на диск, перезаписав существующий plist содержимым вашего массива данных.

+0

Так мое приложение находит plist .. Это не работает, просто меняя его. 'NSArray * paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES); \t // получить путь к документам \t NSString * documentsPath = [paths objectAtIndex: 0]; \t // получить путь к нашему файлу данных/plist \t NSString * plistPath = [documentsPath stringByAppendingPathComponent: @ "Data.plist"]; NSMutableDictionary * dictionary = [NSMutableDictionary dictionaryWithContentsOfFile: (NSString *) plistPath]; ' –

+0

Уверенный, что делает. Просто сделайте то же самое с 'NSMutableDictionary'. – Mundi

+0

Я попробовал '[dictionary removeObjectAtIndex: indexPath.row]', все еще вызывает сбой –

Смежные вопросы