gpt4 book ai didi

ios - swift 4 : cellForRowAt skipping last row

转载 作者:行者123 更新时间:2023-11-28 12:12:05 27 4
gpt4 key购买 nike

我有一个包含 14 个元素的硬币数组,我使用 coins.count 作为函数“numberOfRowsInSection”的返回值

override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.coins.count
}

但是返回单元格的函数只运行了 13 次(直到索引 12)

 override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let celula = tableView.dequeueReusableCell(withIdentifier: "cellCoin", for: indexPath) as! CoinTableViewCell
print("row " + String(indexPath.row))
let coin = coins[indexPath.row]
investment = coin.value(forKey: "investment") as! Double
viewTotalInvestment += investment

在我创建单元格的同时,它会转到 API 端点来检查硬币值,但我认为这不是问题所在

对可能发生的事情有什么建议吗?

最佳答案

我想在这里说的很清楚。整个 UITableViewDataSource 协议(protocol)仅用于显示表格 View 数据。请勿将其用于任何其他显示目的,绝不将其用于数据处理。

如果要计算viewTotalInvestment,那么就这样定义

var viewTotalInvestment: Double {
var result = 0.0
for coin in coins {
let investment = coin.value(forKey: "investment") as! Double
result = result + investment
}
return result
}

甚至更好

var viewTotalInvestment: Double {
return coins.reduce(0.0) { result, coin in
let investment = coin.value(forKey: "investment") as! Double
return result + investment
}
}

关于ios - swift 4 : cellForRowAt skipping last row,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48116201/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com