我对这一切都不熟悉,所以我希望这是有意义的。我想在按下按钮时显示随机图像,而不让同一图像连续出现两次。我在这个网站上找到了类似的问题,答案对我有帮助,但我的代码中仍然有一些我不理解的错误。
下面是类下面顶部图像数组的代码:

var imageArray:[String] = ["yes", "no", "indeed", "nope", "ofCourse", "noWay"]

下面是我在ButtonIBaction下用于随机数的代码:(这里面可能有我不知道的错误,就像我之前说的我是一个noob)
 var currentNo: UInt32 = 0

    func randomNumber(maximum: UInt32) -> Int {

        var randomNumber: UInt32

        do {
            randomNumber = (arc4random_uniform(6))
        }while currentNo == randomNumber

        currentNo = randomNumber

        return Int(randomNumber)
    }
    var imageString:String = self.imageArray [randomNumber]

    self.iPhoneImage.image = UIImage(named: imageString)

我在这条线上有个错误:
var imageString:String = self.imageArray [randomNumber]

上面写着
“无法用类型为的索引订阅类型为'[String]'的值”
“(UInt32)—>整数”

最佳答案

这样可以很好地工作:

var imageString:String = self.imageArray[randomNumber(6)]

正如您在函数声明func randomNumber(maximum: UInt32) -> Int中看到的,这意味着您的函数接受一个maximum类型的参数UInt32,并返回Int
但是您正在使用类似于self.imageArray[randomNumber]的函数来访问imageArray中带有randomNumber函数的元素。
但是您的函数接受您没有分配的参数,因此您可以这样使用函数randomNumber(6),其中6是最大值。
您可以根据需要更改最大值。

09-10 11:12
查看更多