在每个UITableViewCell单元格中添加键的每个出现

问题描述 投票:0回答:2

我的UITableView中的每个细胞都有一个存储在amountValue中的CoreData值。我的表视图是一个钱包,所以最后一步是添加每个$并显示总计为wallet value

我试图在我的qazxsw poi中迭代每个qazxsw poi事件而没有成功。

这是我目前的情况:

amountValue

现在我在tableView上获得了func updateWalletValue() { // CryptosMO is the Managed Object with an `amountValue` attribute among others. var item : [CryptosMO] = [] if CoreDataHandler.fetchObject() != nil { item = CoreDataHandler.fetchObject()! tableView.reloadData() } for section in 0...self.tableView.numberOfSections { if (self.tableView.numberOfRows(inSection: section) > 0) { for row in 0...self.tableView.numberOfRows(inSection: section) { let total = item[row].amountValue! + item[row + 1].amountValue! print("TOTAL :", total) } } } }

我该怎么做才能解决问题并使计算成为可能?

编辑:进一步测试后,访问Thread 1: signal SIGABRT使应用程序崩溃..

ios swift function uitableview core-data
2个回答
0
投票

你的代码不是很安全。避免强制展开并不困难,你应该从这开始。

例如:

App Delegate

你是不是丢弃了初始fetchObject()调用的结果?这可以改写为:

amountValue

我假设该项目是您的数据源。 [否则重新加载表视图的调用没有意义]

您提供的下一个代码块也可以重构为更安全。在对其进行任何数学运算之前验证您是否有amountValue。

最后,这段代码可能不在您的AppDelegate.swift文件中?你是否从app delegate中调用此代码?

你需要把它分解成可管理的块 - 我想你在这里有不止一个问题。


0
投票

您可以在项目上简单地应用reduce高阶方法:

  if CoreDataHandler.fetchObject() != nil {
        item = CoreDataHandler.fetchObject()!
        tableView.reloadData()
    }
© www.soinside.com 2019 - 2024. All rights reserved.