Swift 敏捷的使用特定图像对TableView中的单元格进行计数

Swift 敏捷的使用特定图像对TableView中的单元格进行计数,swift,tableview,Swift,Tableview,我们正在尝试创建一个资金管理应用程序。因此,我们制作了一个TableView,用户可以在其中添加他们的支出。他们可以选择自己的支出属于哪一类,如服装、火车票等。现在,我们已经创建了一个piechart,我们希望在其中显示用户将大部分资金花在哪个类别上。要获取此图表的数据,我们需要表视图中具有特定图像的单元格数量 因此,我们希望应用程序计算单元格的数量,例如,其中的image towning.png 你不应该这么做。您的数据模型应该具有这些信息。如果你想通过计算有多少细胞具有特定的图像来达到你想要

我们正在尝试创建一个资金管理应用程序。因此,我们制作了一个TableView,用户可以在其中添加他们的支出。他们可以选择自己的支出属于哪一类,如服装、火车票等。现在,我们已经创建了一个piechart,我们希望在其中显示用户将大部分资金花在哪个类别上。要获取此图表的数据,我们需要表视图中具有特定图像的单元格数量


因此,我们希望应用程序计算单元格的数量,例如,其中的image towning.png

你不应该这么做。您的数据模型应该具有这些信息。如果你想通过计算有多少细胞具有特定的图像来达到你想要达到的效果,那会有点事与愿违

例如,您可以有如下数据模型:

struct Expense {
    var category: ItemCategory
    var amountSpent: Double
}

enum ItemCategory {
    case clothing
    case entertainment
    case carMaintenance
    case groceries
}
您可以创建如下费用对象:

let expense1 = Expense(category: .clothing, amountSpent: 10.00)
let expense2 = Expense(category: .entertainment, amountSpent: 67.49)
let expense3 = Expense(category: .clothing, amountSpent: 13.67)
然后,使用此数据用类别填充单元格图像,现在您可以简单地使用过滤器获得有多少衣服类别,并减少以获得总花费,如下所示:

let clothingExpenseCount = expenses.filter({ $0.category == .clothing }).count
let clothingExpense = expenses.reduce(0) { (result, expense) -> Double in
    return result + expense.amountSpent
}
为了得到这个图表的数据,我们需要有这些特定图像的单元格数量不,你需要的是分析导致这些单元格首先有这些图像的数据。处理数据,而不是它的副作用。