我目前正在研究XCode中的一个快速项目,我遇到了一个问题,我不能通过各种努力来增加数组的一个元素。
我的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并且它在我的数组中显示了第5个元素,我相信这段代码会运行一次。我需要它是一个始终如一的工作,所以它不断显示下一个元素,我难倒,因为这理论上应该工作,因为它被称为“循环”任何帮助或建议是赞赏!
目标重新定义: 我试图一次显示一个事实,在此之前我使用随机函数每次生成一个随机事实然而事情往往会重复,因此我决定从初始数组索引开始是0并抓住下一个事实(每次按下按钮时,(数组中的下一个元素)(感谢Luk的问题)
答案 0 :(得分:2)
您需要创建一个实例变量来保存当前的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]
}
}