我对这一切都不熟悉,所以我希望这是有意义的。我想在按下按钮时显示随机图像,而不让同一图像连续出现两次。我在这个网站上找到了类似的问题,答案对我有帮助,但我的代码中仍然有一些我不理解的错误。
下面是类下面顶部图像数组的代码:
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是最大值。您可以根据需要更改最大值。