我发布了一款在iPhone 5s,6,6s和iPad上运行良好的简单游戏。但是当在iPhone 5,5c,4S或4上运行时,应用程序会在此代码发生时崩溃:
let delay = Int(arc4random_uniform(UInt32(300)))*Int(NSEC_PER_SEC)/100
我收到此错误:
线程1 exc_bad_instruction(code = exc_i386_invop subcode = 0x0)
我认为它真的很奇怪它只发生在iPhone 5及以下版本。
答案 0 :(得分:6)
32位整数的最大值是2 147 483 647。
您的delay
值可能会大于此值,因此有时它会在您列出的这些设备上的32位平台上崩溃,因为Int
无法保存该值。
答案 1 :(得分:3)
如果原因是因为Int不能保持该值,则将其设为UInt
。这将使其最大值翻倍。