SWIFT随机化数组元素和按钮名称

时间:2014-12-06 20:33:07

标签: arrays xcode button swift random

所以我面临两个问题:

我试图从数组中获取一个随机元素。我发现了这种方式:

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名为card1card2card3等等。
有没有办法使用与randomCard对应的按钮? 例如,对于图像,有:

    UIImage(named: String (format: "card_%i_%i", y, b))

2 个答案:

答案 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)))
    }
}