У меня настроено UITableView
, и его источником данных является песочница приложения, поэтому все строки заполнены файлами, которые были импортированы с использованием UIDocumentPicker
, но мне также нужно иметь возможность удалять эти файлы.
Функция удаления работает, я могу скользить и удалять строки и все, но файл остается в песочнице приложения, поэтому каждый раз, когда я импортирую новый файл, строки пополняются ( TableView перезагружается каждый раз, когда что-то импортируется) с ранее «удаленным» материалом.
func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
if editingStyle == UITableViewCell.EditingStyle.delete {
self.deleteFile()
importedfiles.remove(at: indexPath.row)
tableView.deleteRows(at: [indexPath], with: UITableView.RowAnimation.automatic)
}
}
Плюс ко всему, что уже есть в коде, мне нужна функция для удаления файла из песочницы приложения (импортированные файлы).
Вот что у меня есть, я могу удалять файлы, но только весь каталог, а это не то, что мне нужно. Код:
func deleteFile() {
let dirPaths = FM.urls(for: .documentDirectory, in: .userDomainMask)
let docsDir = dirPaths[0].path
if FM.fileExists(atPath: docsDir) {
do {
try FM.removeItem(atPath: docsDir)
} catch {
print("Could not delete file: \(error)")
}
}
}
Редактировать: «импортированные файлы» - это файлы, которые были импортированы в каталог приложения (документы) с использованием UIDocumentPickerViewController. И TableView использует эти данные для создания ячеек.