所以我面临两个问题:
我试图从数组中获取一个随机元素。我发现了这种方式:
var cards = [1, 2, 3, 4, 5, 6, 7, 8, 9]
var randomCard = Int(arc4random_uniform(UInt32(cards.count)))
然而,我得到两个错误:
"Expected ',' separator"
"Expected expression in list of expressions".
我做错了什么?
第二个问题如下:
我UIButtons
名为card1
,card2
,card3
等等。
有没有办法使用与randomCard
对应的按钮?
例如,对于图像,有:
UIImage(named: String (format: "card_%i_%i", y, b))
答案 0 :(得分:0)
您可以使用if语句来测试随机数是什么,然后根据其上的内容更改按钮背景。例如,您可以这样做:
if randomCard == 1 {
//run some code
} else if randomCard == 2 {
//run some other code
}
依此类推,直到获得所有价值。
答案 1 :(得分:0)
我没有意识到你将这些作为存储属性声明。您遇到的麻烦是,在声明存储的属性时,您无法从同一个类访问另一个属性 - 当时不存在self.cards
。
有两种方法可以将第二个属性标记为lazy
,因此在创建实例之后才会计算表达式,或者将其创建为计算属性,然后获取值每次访问时都会:
class ViewController: UIViewController {
// stored property:
var cardsArray = [1, 2, 3]
// lazy property:
lazy var cardCount: Int = self.cardsArray.count
// computed property:
var randomCard: Int {
return Int(arc4random_uniform(UInt32(self.cards.count)))
}
}