我正在关注此代码以从UITableView
var recordedAudioFilesURLArray = [URL]()
func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool {
return true
}
func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
if editingStyle == .delete {
recordedAudioFilesURLArray.remove(at: indexPath.row)
self.tableView.reloadData()
}
}
当我向左滑动到特定单元格时,单元格从UITableView
移除。那很棒。但当我关闭我的应用程序并再次重新启动我的应用程序时,会出现已删除的单元格
音频文件存储在文档目录中。
答案 0 :(得分:3)
使用URL
数组从DocumentDirectory
删除该文件,然后从Array
中删除该对象。
func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
if editingStyle == .delete {
//First remove file from DocumentDirectory
try? FileManager.default.removeItem(at: recordedAudioFilesURLArray[indexPath.row])
//Remove object from array
recordedAudioFilesURLArray.remove(at: indexPath.row)
//Reload tableView
self.tableView.reloadData()
}
}
答案 1 :(得分:0)
func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
if editingStyle == .delete {
recordedAudioFilesURLArray.remove(at: indexPath.row)
self. clearAllFilesFromTempDirectory(indexPath.row);
self.tableView.reloadData()
}
}
func clearAllFilesFromTempDirectory()->fullPath
{
if fileManager.removeItemAtPath(fullPath, error: error) == false
{
println("delete successfully")
}
else
{
println("Could not retrieve directory: \(error)")
}
}