Swift:调用函数时调用 EXC_BAD_INSTRUCTION

Posted

技术标签:

【中文标题】Swift:调用函数时调用 EXC_BAD_INSTRUCTION【英文标题】:Swift: EXC_BAD_INSTRUCTION called when calling function 【发布时间】:2018-04-01 23:51:38 【问题描述】:

所以我试图让标准偏差函数工作,但是我遇到了一个错误。这是我的代码:

func standardDeviation(dataSet: [Double]) -> Double 
let mean = dataSet.reduce(0, +) / Double(dataSet.count)
var distances = [Double]()
for number in dataSet 
    let distanceFromMean = (dataSet[Int(number)] - mean)
    distances.append(distanceFromMean * distanceFromMean)


return distances.reduce(0, +) / Double(dataSet.count)

输出如下错误:

致命错误:索引超出范围

所以,当我调用dataSet数组时,我有一种感觉,所以当我查看它时,我发现这是一个错误

错误:执行被中断,原因:EXC_BAD_INSTRUCTION(代码=EXC_I386_INVOP,子代码=0x0)。 进程一直停留在中断点,使用“thread return -x”返回表达式求值前的状态。

【问题讨论】:

【参考方案1】:

numberDouble!)不能作为订阅dataSet的索引,所以我很确定你意思是

let distanceFromMean = number - mean

Fast Enumeration 模式中,索引变量number 实际上等于array[index]

【讨论】:

以上是关于Swift:调用函数时调用 EXC_BAD_INSTRUCTION的主要内容,如果未能解决你的问题,请参考以下文章

Swift UITableView 仅在我按下几秒钟时调用 didSelectRowAt

swift 后父控制器时调用函数

Swift IOS:从通知打开应用程序时调用 UIviewController 的特定功能

实例化 Swift 类时调用站点出错

第二次调用函数时未调用 Swift 完成处理程序

应用程序中的调用函数didbecomeactive - Swift 2.0