gpt4 book ai didi

ios - Swift - 求和函数错误

转载 作者:行者123 更新时间:2023-11-28 08:10:43 24 4
gpt4 key购买 nike

我正在尝试制作一些 View Controller ,每次都保存一个标签变量并将其加总为一个总变量。在最后一个 View Controller 中,显示结果。

我的代码是:

第一 View Controller

@IBAction func playSystemSoundV1(sender: UIButton) {
// Other code...
puntsLocal = 3
}

@IBAction func playSystemSoundRet(sender: UIButton) {
// Other code...
puntsLocal = 5
}

此代码与 5 Controller 类似。在 Controller 的末端,我有一个按钮可以从一个 viewController 传递到另一个。当我点击时,我执行上面的代码:

@IBAction func puntuacioAction(sender: UIButton) {
let puntuacion = Sum()
puntuacion.sumPoints(puntsLocal)
}

求和类

import Foundation

class Sum {
var points = 0

// Method to sum points from every question.
func sumPoints(num: Int) {
self.points += num
}

func getPoints() -> Int {
return points
}
}

问题是只返回最后一个数字而不做任何类型的总和。我能做些什么?在其他语言中很容易解决,但在 Swift 中我无法找到答案。请帮忙!

谢谢。

最佳答案

您需要在函数外部声明您的变量:

let puntuacion = Sum()

@IBAction func puntuacioAction(sender: UIButton) {
puntuacion.sumPoints(puntsLocal)
}

每次调用该函数时,您的原始代码都会创建一个新的 Sum,解释您所看到的行为。在 Swift 中,变量声明绑定(bind)到它们出现的范围(例如,在函数内部、类内部等)。

除此之外,如果您想在多个 View Controller 之间共享此 Sum 对象,这可能会有所帮助:

class Sum {
static let shared = Sum()
...
}

并像这样使用它:

@IBAction func puntuacioAction(sender: UIButton) {
Sum.shared.sumPoints(puntsLocal)
}

当然,您随后应该删除 let puntuacion = Sum() 行。

关于ios - Swift - 求和函数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43859104/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com