(SWIFT 4)如何计算 tableview 中列 indexpath.row 的总和?
Posted
技术标签:
【中文标题】(SWIFT 4)如何计算 tableview 中列 indexpath.row 的总和?【英文标题】:(SWIFT 4) How to calculate sum of the columns indexpath.row in the tableview? 【发布时间】:2018-11-09 15:33:46 【问题描述】:如何计算不同单元格中相同列的总和,而不是同一单元格中的总和。
不知道怎么解决。
import UIKit
class ResultViewController: UIViewController, UITableViewDataSource, UITableViewDelegate, UITextFieldDelegate
@IBOutlet var tableview: UITableView!
@IBAction func backPage(_ sender: Any)
self.presentingViewController?.dismiss(animated: true)
let ad2 = UIApplication.shared.delegate as? AppDelegate
@IBAction func resetHist(_ sender: Any)
ad2?.listPrice = [String]()
ad2?.listAmt = [String]()
tableview.reloadData()
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
return ad2?.listPrice.count ?? 0
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! CustomTableViewCell
cell.resultPrice?.text = ad2?.listPrice[indexPath.row]
cell.resultAmt?.text = ad2?.listAmt[indexPath.row]
var sum = 0
// how to calculate sum of the same columns in different cells
for i in ad2?.listPrice.count
sum += Int(ad2?.listPrice[i])
return cell
【问题讨论】:
你能举个例子吗?不太明白这里的列是什么意思。 (不确定您是否理解列的含义,无意冒犯) 对不起。我英语不成熟。 column 表示 tableviewcell 的每个元素 ex) listPrice[0], listPrice[1], ... 你打算在cellForRowAt
中使用它做什么?
【参考方案1】:
如果您想以尝试的方式枚举元素:
var sum = 0
for pair in listPrice.enumerated()
sum += Int(pair.element) //listPrice[pair.index]
或者直接使用这个:
let sum = ad2?.listPrice.compactMap(Int.init).reduce(0, +)
【讨论】:
【参考方案2】:使用compactMap
将String
数组映射到Int
和reduce
以总结项目。
let ad2 = UIApplication.shared.delegate as! AppDelegate
...
let sum = ad2.listPrice.compactMap(Int.init).reduce(0, +)
而cellForRow
是错误的代码位置。
注意事项:
基本上不使用多个数组作为数据源。 如果listPrice
包含数值,请使用更合适的类型,例如Int
或Double
。
不要将AppDelegate
用作存储数据的常用位置。
如果AppDelegate
不存在,则应用甚至不会启动,因此强制施放它是绝对安全的。
【讨论】:
以上是关于(SWIFT 4)如何计算 tableview 中列 indexpath.row 的总和?的主要内容,如果未能解决你的问题,请参考以下文章
我如何使用解码器在swift 4中解析tableview中的json数组
如何从数据核心 swift 4 中删除 tableview index.row
在 iOS Swift 中,在 Swift 4 中的 TableView 中为 CollectionView 集成不同的数组
如何在 Swift Xcode 6.4 的 TableView 中显示 Parse 数组