我在最近的一个快速程序中遇到了这个奇怪的错误。它涉及随机事件,并且为了模拟这个我分配一个事件'赔率',然后生成两个随机数(使用这些赔率),如果数字相同,那么动作发生。但是这个程序莫名其妙地在代中崩溃。我能想到的唯一解释是所需的铸造过多,但我不确定为什么它偶尔会崩溃。我很感激任何洞察力,为什么该演员崩溃,并且为了避免这种过度投射而采取什么措施。
我的图像显示代码和错误,下面的代码是我的代码的一般化。 Crash ErrorSwift casting导致应用程序崩溃
let rand = [Int(arc4random_uniform(UInt32(someInt))), Int(arc4random_uniform(UInt32(someInt)))]
if (rand[0] == rand[1]) {
executeAction()
}
只是澄清,arc4random_uniform需要UInt32并返回UInt32。我someInt是一个数字整数。 – Sllew
这不是为我崩溃,someInt包含什么? –
数量呈指数级增长,显然。在某些情况下,我把赔率加倍(从3到6)......但是因为赔率是全球性的,他们保持了增长并保持翻倍。我猜测UInt32最大并抛出错误。感谢您的帮助! – Sllew