2015-10-16 85 views
3

我发布了一款在iPhone 5s,6,6s和iPad上运行良好的简单游戏。但在iPhone 5,5C,4S或4上运行时,当该代码发生在该点的应用程序崩溃:应用程序崩溃iPhone 5及以下版本

let delay = Int(arc4random_uniform(UInt32(300)))*Int(NSEC_PER_SEC)/100 

我得到这个错误:

thread 1 exc_bad_instruction (code=exc_i386_invop subcode=0x0)

我认为这是很奇怪的,只发生在iPhone 5及以下。

回答

6

一个32位整数的最大值是2 147 483 647

delay值可以是大于,所以有时它会崩溃在32个平台,如你列出这些设备,因为Int不会能够保持价值。

+0

可以通过使其成为UInt来解决 – Arbitur

+0

谢谢!现在我可以很快启动修复程序! –

3

如果原因是因为国际货币基金组织不能保持价值,那么使其成为UInt。这将使其最大值翻倍。