Ios 让tableView从NSUserDefaults删除滑动删除项目-如何将这两个功能结合在一起?

Ios 让tableView从NSUserDefaults删除滑动删除项目-如何将这两个功能结合在一起?,ios,xcode,uitableview,swift,nsuserdefaults,Ios,Xcode,Uitableview,Swift,Nsuserdefaults,我想让我的应用程序的用户通过在单元格上向左滑动并按delete键,从表格视图中删除NSUserDefaults中的项目。我知道这两个函数,但我不知道如何将它们组合在一起,以便移除滑动影响NSUserDefaults中的变量。也许有人能帮我。多谢各位 此功能应允许用户访问tableView中的“删除”按钮: 该函数应删除NSUserDefault中的项: 首先,让我们将mutableItemList更改为一个实例变量,将其用作表的数据源。或者,您可以创建一个新的实例变量并相应地进行设置 var m

我想让我的应用程序的用户通过在单元格上向左滑动并按delete键,从表格视图中删除NSUserDefaults中的项目。我知道这两个函数,但我不知道如何将它们组合在一起,以便移除滑动影响NSUserDefaults中的变量。也许有人能帮我。多谢各位

此功能应允许用户访问tableView中的“删除”按钮:

该函数应删除NSUserDefault中的项:


首先,让我们将mutableItemList更改为一个实例变量,将其用作表的数据源。或者,您可以创建一个新的实例变量并相应地进行设置

var mutableItemList: NSMutableArray!
然后,要删除,我们调用deleteItem函数

override func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
    if editingStyle == .Delete {
        // Delete the row from the data source
        self.deleteItem(mutableItemList[indexPath.row])
        // show fancy fade animation to remove the cell from the table view
        tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Fade)
    }
} 
还可以简化deleteItem函数。您不需要重建阵列并从NSUserDefault中删除对象。您只需删除对象,然后设置更新的数组,该数组将覆盖其中的任何内容

func deleteItem(sender: AnyObject) {        
    mutableItemList.removeObject(sender)

    var userDefaults:NSUserDefaults = NSUserDefaults.standardUserDefaults()        
    userDefaults.setObject(mutableItemList, forKey: "itemList")
    userDefaults.synchronize()
}
override func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
    if editingStyle == .Delete {
        // Delete the row from the data source
        self.deleteItem(mutableItemList[indexPath.row])
        // show fancy fade animation to remove the cell from the table view
        tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Fade)
    }
} 
func deleteItem(sender: AnyObject) {        
    mutableItemList.removeObject(sender)

    var userDefaults:NSUserDefaults = NSUserDefaults.standardUserDefaults()        
    userDefaults.setObject(mutableItemList, forKey: "itemList")
    userDefaults.synchronize()
}