当用户在我的应用程序中添加卡路里时,如何使标签增加

How to make label increase in increments as user adds Calories in my App

我的应用程序中有一个食物日记,我想知道如何编写逻辑以便我的标签可以更新到用户当天摄入的卡路里累积量。我在想也许我可以将 cals 的状态保存为其他变量的整数......但除此之外我很困惑。这是应用程序的图片:

这是我目前为止在我的函数中所做的一切...我正在考虑添加一个 class 级别变量,例如

var appJustLoaded = true 保存应用程序的状态,然后在用户输入食物后将其关闭。有什么建议么?我基本上希望我的卡路里标签随着用户输入更多含卡路里的食物而更新。我知道它很简单,但我卡住了哈哈

 func didAddRow(name: String, calories: String, section: Int) {

    var newCals = Int(calories)


    calsforToday.text = calories

您可以将新的卡路里追加到数组中,然后计算它们的总和。

var caloriesArray = [1,2,3,4,5,6,7,8,9,10]
func didAddRow(name: String, calories: String, section: Int) {

    var newCals = Int(calories)

    caloriesArray.append(newCals!)

    calsforToday.text = caloriesArray.reduce(0, +)

}

如果您将数据存储在 CoreData 中,那么当您获取数据以获得总数时,您将使用类似这样的东西。

let result = try! context.fetch(request) as! [NSManagedObject];
let sum = result.reduce(0) { [=11=] + (.value(forKey: "Value") as? Int16 ?? 0) }

您可以有一个名为 totalCalories 的变量,并且在您的 didAddRow 函数中您可以将卡路里添加到总量中。然后,由于这是简单的整数,您可以使用 UserDefaults 保存它。查看此示例,了解如何使用 UserDefaults 存储数据。

https://www.hackingwithswift.com/read/12/2/reading-and-writing-basics-userdefaults