App崩溃iPhone 5及以下版本

时间:2015-10-16 14:30:06

标签: iphone swift

我发布了一款在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及以下版本。

2 个答案:

答案 0 :(得分:6)

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

您的delay值可能会大于此值,因此有时它会在您列出的这些设备上的32位平台上崩溃,因为Int无法保存该值。

答案 1 :(得分:3)

如果原因是因为Int不能保持该值,则将其设为UInt。这将使其最大值翻倍。