首页 > 解决方案 > 如何提取和计算具有属性 price 的对象数组的价格

问题描述

我有一个对象数组,每个对象都有属性价格。我想要的是提取每个对象的价格,然后得出价格的总和,最后在标签中显示 TotalPrice。目前我的一系列价格变得疯狂,我不知道为什么。

这是我目前的代码:

 class CartViewController: UIViewController {
        var productsInCartArray = [Product]()
        var productPricesArray = [Float]()

        func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
            let cell = cartTableView.dequeueReusableCell(withIdentifier: Constants.identifierCartTotalPriceCell, for: indexPath) as! CartTableViewCell

            var totalSum: Float = 0

            for eachProduct in productsInCartArray{
                productPricesArray.append(eachProduct.price)
                totalSum = productPricesArray.reduce(0, +)

                cell.cartTotalPriceLabel.text = String(totalSum)

                return cell
            }
        }
 }

这是一个屏幕截图:

在此处输入图像描述

标签: iosswiftuitableviewnsarray

解决方案


productPricesArray 是一个实例变量,而不是局部变量,因此每次生成单元格时都会向 productPricesArray 添加一个元素;如果您有两个单元格,则该数组中将有 4 个价格。此外,每次在此表上 reloadData() 时,都会向该数组添加更多价格。

您应该将该逻辑从该方法中提取出来,而是在调用表上的 reloadData(或其他加载时间)之前触发它。


推荐阅读