我正在尝试在 Swift 中生成一个随机数:
var amountOfQuestions = 2
var randomNumber = Int(arc4random_uniform(amountOfQuestions - 1)) + 1
但这会导致错误:
无法将“Int”类型的值转换为预期的参数类型“UInt32”
问题是什么?关于我可以做些什么来解决这个错误的任何想法?
我正在尝试在 Swift 中生成一个随机数:
var amountOfQuestions = 2
var randomNumber = Int(arc4random_uniform(amountOfQuestions - 1)) + 1
但这会导致错误:
无法将“Int”类型的值转换为预期的参数类型“UInt32”
问题是什么?关于我可以做些什么来解决这个错误的任何想法?
将 amountOfQuestions 声明为 UInt32:
var amountOfQuestions: UInt32 = 2
PS:如果你想在语法上正确,那就是问题的数量。
使您的amountOfQuestions
变量成为UInt32
而不是Int
编译器推断的。
var amountOfQuestions: UInt32 = 2
// ...
var randomNumber = Int(arc4random_uniform(amountOfQuestions - 1)) + 1
arc4random_uniform
需要一个UInt32
.
来自达尔文文档:
arc4random_uniform(u_int32_t upper_bound);
第一件事:方法“arc4random_uniform”需要一个 UInt32 类型的参数,所以当你把那个减法放在那里时,它会将你写的“1”转换为 UInt32。
第二件事:在swift中,您不能从Int(在本例中为'amountOfQuestions')中减去UInt32(公式中的'1')。
要解决这一切,您必须考虑将“amountOfQuestions”的声明更改为:
var amountOfQuestions = UInt32(2)
这应该够了吧 :)