为什么会出现此错误,我该如何解决? Swift
Why do I get this error and how can I fix it? Swift
我正在猜测纸牌游戏,但在为符号和纸牌编号创建随机数时出现了无法修复的奇怪错误。这是错误:
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)))
也不要忘记展开 correctSymbolNumber
和 correctNumberNumber
值。
我正在猜测纸牌游戏,但在为符号和纸牌编号创建随机数时出现了无法修复的奇怪错误。这是错误:
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)))
也不要忘记展开 correctSymbolNumber
和 correctNumberNumber
值。