Swift - 从UITableView中删除单元格

时间:2017-01-10 06:47:05

标签: ios swift uitableview nsdocumentdirectory

我正在关注此代码以从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移除。那很棒。但当我关闭我的应用程序并再次重新启动我的应用程序时,会出现已删除的单元格 音频文件存储在文档目录中。

2 个答案:

答案 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)")
       }
}