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



所以我面临两个问题:

我正在尝试从数组中获取一个随机元素。我找到了这种方式:

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))

我没有意识到您正在将这些作为存储属性声明提供。您遇到的麻烦是,在声明存储属性时,无法访问同一类中的另一个属性 - 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)))
    }
}

您可以使用 if 语句来测试什么是随机数,然后根据其上的哪个按钮更改按钮背景。例如,您可以执行以下操作:

if randomCard == 1 {
//run some code
} else if randomCard == 2 {
//run some other code
}

依此类推,直到你得到所有的值。

最新更新