【问题标题】:Array of Int and String: Update only Int value?Int 和字符串数组:仅更新 Int 值?
【发布时间】:2018-07-17 12:23:19
【问题描述】:

我正在尝试为(我的)孩子制作一个家务应用程序。我正在使用带有自定义单元格的 tableView。现在,我有一个包含不同杂务的固定列表(数组),以及一个用于完成杂务的 doneButton。我还有一个标签,用于计算完成家务的次数。
我还有第二个视图控制器,用于汇总所有已完成的杂务以及完成的次数。
因此,当家务“做菜”上的 doneButton 被按下时,第二个视图控制器应该显示:1 做菜。
如果再次按下“做菜”上的完成按钮,第二个视图控制器应显示:2 做菜。
当家务“walk dog”上的 doneButton 时,第二个 View 控制器应该显示:
2 洗碗。
1 遛狗。
我的问题是我无法正确获取第二个视图控制器中的列表。当 doneButton 被按下时,它要么覆盖列表,要么像这样添加: 1 洗碗。 2 洗碗 1 遛狗。
我试图使用一个数组,并附加到这个,但我不知道如何只更新 Int,而不是 String。
这就是我所在的位置:

当 doneButton 被按下时:

summaryArray.append(String(choreList[indexPath.row].count) + " " + choreList[indexPath.row].chore)    

如何更新数组中的count 而不对数组执行任何其他操作?

【问题讨论】:

  • 将家务的数量与家务的种类分开。创建一个结构 struct Chore { let name : String; let counter : Int } 并使用它。
  • 你可以使用一个结构然后只更新 Int。编辑:厄运!

标签: arrays swift uitableview


【解决方案1】:

你应该使用这样的结构:

struct Chores {
    let choreName : String
    let choreCounter : Int
}

然后你可以用你需要的所有项目填充一个数组,如下所示:

var array = [Chores(choreName : "Walk Dog", choreCounter : 0),//etc. you can add more] 

使用此方法,您可以更改数组中的每个单独项目:

array[0].choreName = "Walk Dog faster!"
array[0].choreCounter += 1

【讨论】:

  • 感谢您的回答。恐怕我对结构没有太多经验。当我使用 tableview 时如何实现这一点?如何填充数组?原数组中的choreList[indexPath.row].chorechoreList[indexPath.row].count不可以用吗?
  • 确实如此。如果您想了解有关 tableView 单元格以及如何实现它们的更多信息,请查看 YouTube 上的 this 教程。那个教程是我所知道的最简单的教程之一,这个人解释了一切。
猜你喜欢
  • 1970-01-01
  • 2018-02-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-03
  • 1970-01-01
相关资源
最近更新 更多