@IBAction func sortList(_ sender: Any) {
var stateOfList = 0
var sortedList = array
switch stateOfList {
case 0:
sortedList = array.sorted { ($0.priceUsd!) > ($1.priceUsd!) }
stateOfList = 1
case 1:
sortedList = array.sorted { ($0.priceUsd!) < ($1.priceUsd!) }
stateOfList = 2
case 2:
sortedList = array.sorted { ($0.rank) < ($1.rank) }
stateOfList = 0
default:
stateOfList = 0
}
array = sortedList
tableView.reloadData()
print(stateOfList)
}
我想在按下按钮后对数组进行排序并更改列表的状态。第二次按应按另一个方向对数组进行排序。但是编译器告诉我“永远不会被执行”。我在这里做错了什么?
最佳答案
使 var stateOfList 成为 View Controller 的实例属性以保存状态并在第二次按下时再次访问它。
var stateOfList = 0
你的函数会像
@IBAction func sortList(_ sender: Any) {
var sortedList = array
switch stateOfList {
case 0:
sortedList = array.sorted { ($0.priceUsd!) > ($1.priceUsd!) }
stateOfList = 1
case 1:
sortedList = array.sorted { ($0.priceUsd!) < ($1.priceUsd!) }
stateOfList = 2
case 2:
sortedList = array.sorted { ($0.rank) < ($1.rank) }
stateOfList = 0
default:
stateOfList = 0
}
array = sortedList
tableView.reloadData()
print(stateOfList)
}
关于swift - 按下按钮后使用 case 语句检查值的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47116643/