Swift exc_bad_指令(代码=exc_i386_invop,子代码=0x0)
代码:Swift exc_bad_指令(代码=exc_i386_invop,子代码=0x0),swift,Swift,代码: 在哪些设备/模拟器上会失败?崩溃是否仅发生在32位设备上?例如,如果valueLeft-amountOfValues-i为负数,您将崩溃。@64位和32位设备上的MattGibsondevices@matt我已经检查过了,你是对的!但是我如何解决这个问题呢?一个与问题无关的评论。var amountOfValues=4正在创建一个新变量,然后立即丢弃该变量。如果您希望能够重新分配amountOfValues,请将var放入函数签名:func getRandomValuesvar amou
在哪些设备/模拟器上会失败?崩溃是否仅发生在32位设备上?例如,如果valueLeft-amountOfValues-i为负数,您将崩溃。@64位和32位设备上的MattGibsondevices@matt我已经检查过了,你是对的!但是我如何解决这个问题呢?一个与问题无关的评论。var amountOfValues=4正在创建一个新变量,然后立即丢弃该变量。如果您希望能够重新分配amountOfValues,请将var放入函数签名:func getRandomValuesvar amountOfValues:Int,totalAmount:Int->[Int]?{。
func getRandomValues(amountOfValues:Int, totalAmount:Int) -> [Int]?{
if amountOfValues < 1{
var amountOfValues = 4
}
if totalAmount < 1{
return nil
}
var values:[Int] = []
var valueLeft = totalAmount
for i in 0..<amountOfValues{
if i == amountOfValues - 1{
values.append(valueLeft)
break
}
var value = Int(arc4random_uniform(UInt32(valueLeft - (amountOfValues - i))) + 1)
valueLeft -= value
if(value != 0){
values.append(value)
}
}
BtnValues = values
return values
}
--------->var value = Int(arc4random_uniform(UInt32(valueLeft - (amountOfValues - i))))