使用数组中的数据删除一行tableview

时间:2016-04-12 08:51:41

标签: ios xcode uitableview

如何删除数组中的行及其数据?

我使用命令保存从前一个控制器获取的项目。

var ordered = [ItemList:Int]();

override func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
    if editingStyle == UITableViewCellEditingStyle.Delete {
        ordered.removeAtIndex(indexPath.row)
        tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Automatic)  
    }
}

显示错误消息

  

无法将“Int”类型的值转换为预期的争论类型DictionaryIndex ItemList,Int

on ordered.removeAtIndex(indexPath.row)

2 个答案:

答案 0 :(得分:1)

Dictionary的{​​{1}}相比,

removeValueForKey()提供removeAtIndex()。所以你可能必须使用

array

您必须使用ordered.removeValueForKey(yourKey) 找到相应的密钥,这需要一个数组来跟踪这些密钥,或者您只需将indexPath.row替换为dictionary

答案 1 :(得分:0)

Dictionary确实有removeAtIndex方法,但是你传递的是Int,而它需要在DictionaryIndex中传递。

首先你需要获得密钥:var indexKey = ordered.indexForKey(indexPath.row)

假设密钥是Int。 然后传递给removeAtIndex:

ordered.removeAtIndex(indexKey)