我目前正在 XCode 中开发一个 swift 项目,并且遇到了一个问题,即我无法通过各种努力来增加数组的一个元素。
我的ViewController.Swift
import UIKit
class FailureViewController: UIViewController {
@IBOutlet weak var failFactLabel: UILabel!
let failFact = Failure()
override func viewDidLoad() {
super.viewDidLoad()
failFactLabel.text = failFact.failArray[0]
}
@IBAction func showFunFact() {
//this is where the issue is
}
}
对于函数showFunFact我之前尝试过
for var x = 0; x < failArray.cout; x++ {
failFactLabel.text = failFact.failArray[x]
}
但遇到错误:“使用未解析的标识符”。
抛开这个,我决定使用
for var x = 0; x < 10; {
x+=1
}
尽管这不会生成错误,但我看到它停在数组中的第一个元素处。我尝试了+=5,它显示了数组中的第五个元素一次,我相信这段代码运行了一次。我需要它成为一个一致的工作部件,以便它连续显示下一个元素,我很困惑,因为理论上这应该有效,因为它被称为“循环”任何帮助或建议表示赞赏!
重新定义目标: 我试图一次显示一个事实,在此之前我每次都使用随机函数生成一个随机事实,但是事情往往会重复,因此我决定从初始数组索引为 0 开始并获取下一个事实(数组中的下一个元素)每次按下按钮时(感谢 Luk 的问题)
最佳答案
您需要创建一个实例变量来保存当前的factIndex,如果这是您实际尝试的:
import UIKit
class FailureViewController: UIViewController {
@IBOutlet weak var failFactLabel: UILabel!
var factIndex = 0
let failFact = Failure()
override func viewDidLoad() {
super.viewDidLoad()
failFactLabel.text = failFact.failArray[factIndex]
}
@IBAction func showFunFact() {
factIndex++
if factIndex >= failFact.failArray.count then {
factIndex = 0
}
failFactLabel.text = failFact.failArray[factIndex]
}
}
关于ios - 在 Swift 中将数组元素加一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31404123/