【发布时间】:2017-09-25 12:25:47
【问题描述】:
我有一张允许多选的表格。第一次用户选择某行。第二次用户来到这个页面取消选择某些行,可能会选择某些行或不选择。但我需要保留以前选定的行。该行表示价格。所以我需要跟踪价格,这是我正在跟踪的表视图选定行的原因。
这里我的声明数组是空的:
var groupSelectedOldPrice : [String] = []
这是我的表格行选择的索引项价格附加到数组:
if addon?.isSelect == true {
cell.accessoryType = .checkmark
groupSelectedOldPrice[indexPath.row] = (addon?.price)! // Index out of range
}
当用户按下完成按钮时:
let selectedUserRows = self.tableView.indexPathsForSelectedRows
if let _selectedUserRows = selectedUserRows {
for select in _selectedUserRows {
print(select.row)
let dishprice = Double((dish?.price)!)! - Double(groupSelectedOldPrice[select.row])!
dish?.price = "\(dishprice)"
}
}
我不确定我是如何做到这一点的。我应该为key value 使用字典吗?
【问题讨论】:
-
基本上你不能插入带有索引订阅的项目。您必须使用
append或insert。此外,我建议使用带有isSelected属性的自定义结构作为模型。 -
@vadian 你能给
struct举个例子吗? -
@iOSDeveloper cmets 是回答连续性问题的错误场所。请换一个新的。
-
ok vadian 如果我问我会把链接发给你....
-
我也有这个问题!为什么我不能给数组一个长度,然后将项目放在我想要的位置和时间。 Java 会这样做。
标签: arrays swift uitableview swift3