如何删除数组中的行及其数据?
我使用命令保存从前一个控制器获取的项目。
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)
答案 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)