为什么会出现此错误,我该如何解决? Swift

Why do I get this error and how can I fix it? Swift

我正在猜测纸牌游戏,但在为符号和纸牌编号创建随机数时出现了无法修复的奇怪错误。这是错误:

An image of the error

let cardSymbols = ["Spades", "Hearts", "Diamonds", "Clubs"]
let numbers = ["Ace", "2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack", "Queen", "King"]

func getRandomCard() {

    var correctSymbolNumber = arc4random_uniform(UInt32(cardSymbols.count - 1))
    var correctNumberNumber = arc4random_uniform(UInt32(numbers.count - 1))

    var correctSymbol = cardSymbols[correctSymbolNumber]
    var correctNumber = numbers[correctNumberNumber]

}

我该如何解决这个问题?我知道问题出在我的 arc4random 上...但我该如何解决它。

您需要将 arc4random_uniform 的结果更改为 swift Int,目前它是一个 UInt32,您不能将其用于 swift 字典或数组。

所以:

var correctSymbolNumber = Int(arc4random_uniform(UInt32(cardSymbols.count - 1)))
var correctNumberNumber = Int(arc4random_uniform(UInt32(numbers.count - 1)))

var correctSymbol = cardSymbols[correctSymbolNumber]
var correctNumber = numbers[correctNumberNumber]

您必须将 arc4random_uniform UInt32 的值更改为 Int。如您所见,这是 arc4random_uniform 函数的原型,其中 returns UInt32 func arc4random_uniform(_: UInt32) -> UInt32

var correctSymbolNumber = Int(arc4random_uniform(UInt32(cardSymbols.count - 1)))
var correctNumberNumber = Int(arc4random_uniform(UInt32(numbers.count - 1)))

也不要忘记展开 correctSymbolNumbercorrectNumberNumber 值。