我在最近的一個快速程序中遇到了這個奇怪的錯誤。它涉及隨機事件,並且爲了模擬這個我分配一個事件'賠率',然後生成兩個隨機數(使用這些賠率),如果數字相同,那麼動作發生。但是這個程序莫名其妙地在代中崩潰。我能想到的唯一解釋是所需的鑄造過多,但我不確定爲什麼它偶爾會崩潰。我很感激任何洞察力,爲什麼該演員崩潰,並且爲了避免這種過度投射而採取什麼措施。
我的圖像顯示代碼和錯誤,下面的代碼是我的代碼的一般化。 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