iOS EXC_BAD_ACCESS,但没有什么是零

时间:2015-01-05 20:25:17

标签: ios iphone swift exc-bad-access

我在我的应用中遇到了一个非常奇怪的EXC_BAD_ACCESS崩溃。导致崩溃的代码是

private func isValidGridCoordinate(coord : CGPoint) -> Bool {
    return !((coord.x < 0) || (coord.x >= gridSize.width)
        || (coord.y < 0) || (coord.y >= gridSize.height))
}

但是当我查看XCode中的内存时,我发现coord,self和gridSize中的值与预期完全一致。如果我的对象都不是nil,为什么会发生这个错误?

编辑:在崩溃时调用此函数的代码是

private func caveCellFromGridCoordinate(coord : CGPoint) -> CaveCell? {
    if (isValidGridCoordinate(coord)) {
        return self.grid[Int(coord.y)][Int(coord.x)] as? CaveCell
    }
    return nil
}

2 个答案:

答案 0 :(得分:1)

看起来您正在使用|,这是一个按位OR运算符。您想使用|| - 逻辑OR运算符。

答案 1 :(得分:0)

好的,所以在放入一堆println之后,我发现代码中的其他地方存在导致溢出的逻辑错误。奇怪的是,我会得到我得到的错误信息,但无论如何,它似乎现在正在工作