Xcode 使用Swift,我似乎只有在使用arc4random时才会出现这种错误。为什么,我该如何修复它?

Xcode 使用Swift,我似乎只有在使用arc4random时才会出现这种错误。为什么,我该如何修复它?,xcode,swift,Xcode,Swift,我得到了这个错误: Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0) 大多数情况下(不是全部),我在Xcode 6中使用Swift时使用arc4random()。我从未在目标C的Xcode 5中遇到过这个错误。奇怪的是,如果我使用arc4random\u uniform(),我就不会遇到这个问题 如何使用arc4random()而不出现此错误?您必须使用它: var _shiom = Int(arc4random_

我得到了这个错误:

Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
大多数情况下(不是全部),我在Xcode 6中使用Swift时使用
arc4random()
。我从未在目标C的Xcode 5中遇到过这个错误。奇怪的是,如果我使用
arc4random\u uniform()
,我就不会遇到这个问题

如何使用
arc4random()
而不出现此错误?

您必须使用它:

var _shiom = Int(arc4random_uniform(UInt32(arrayshiftingTile.count)))

记住它还在测试阶段。这很可能是一个错误。尽量用最小的篇幅重现问题并报告。当我遇到同样的问题时,重启XCode 6为我解决了问题。看起来像个bug。我想这只是苹果内部代码中未定义的行为。您可以通过调用C等价的.interest来解决这个问题。我尝试重新启动了几次,但它似乎对我没有任何改变。另一种可能性是,
arc4random
返回一个
UInt32
,这意味着如果您尝试通过强制执行来分配,有一半的时间它将溢出
Int32
,因为swift可以防止溢出,这也可能导致崩溃
EXC\u BAD\u指令
通常只是一个
abort()
调用。继续并查看日志以了解更多信息。请解释OP代码的工作原理以及通过编辑您的答案来解决问题的原因。func arc4random()->UInt32仅返回类型,但func arc4random\u统一(u:UInt32)->UInt32,值集和返回类型