ios - 在 Swift 中将数组元素加一

标签 ios arrays swift

我目前正在 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/

相关文章:

ios - 如何使用 Swift 上传 Evernote ENML 笔记?

ios - 使用Specta和OHHTTPStubs的iOS异步单元测试永远不会失败(应该这样做!)

ios - 如何去除 PopoverView 中的圆角?

javascript - 索引中存在间隙的数组是否会带来弥补其缺点的任何好处

ios - geocodePostalAddress - 从邮政编码获取地址

ios - 如何为 backBarButtonItem 设置自定义字体

ios - 注册观察者时 viewDidLoad() 崩溃

ios - UINavigationBar 显示为半透明而不是不透明的白色

javascript - 返回 javascript 对象的特定值

将 void * 转换为数组