斯威夫特 3 - 'EXC_BAD_INSTRUCTION(代码 = EXC_1386_INVOP,子代码 = 0x0)' 错误

Posted

技术标签:

【中文标题】斯威夫特 3 - \'EXC_BAD_INSTRUCTION(代码 = EXC_1386_INVOP,子代码 = 0x0)\' 错误【英文标题】:Swift 3 - 'EXC_BAD_INSTRUCTION(code=EXC_1386_INVOP,subcode=0x0)' Error斯威夫特 3 - 'EXC_BAD_INSTRUCTION(代码 = EXC_1386_INVOP,子代码 = 0x0)' 错误 【发布时间】:2017-04-28 18:47:53 【问题描述】:

我正在 swift 3 中开发一个迷宫游戏,它可以编译,但是当我运行它时出现 EXC_BAD_INSTRUCTION 错误。我对 swift 比较陌生,所以我不知道如何正确调试它。以下是出现错误的代码:

init(window:SKScene, width:Int, height:Int)
    widthOfBoard = width
    heightOfBoard = height


    for i in 0..<widthOfBoard 
        var temp:[cell]!
        for j in 0..<heightOfBoard 
            let tempCell = cell(x: i, y: j, boardWidth: widthOfBoard, boardHeight: heightOfBoard, screenSize: window.frame)
            temp.append(tempCell)
        
        cells.append(temp)
    
    stackOfCells.append(cells[0][0])
    recursiveMaze(currentX: 0, currentY: 0, window: window)

我收到了cells.append(temp) 的错误。

我也收到了每个错误 these locations.

【问题讨论】:

【参考方案1】:

temp 是导致崩溃的nil。任何不小心写的感叹号都可能导致崩溃。

声明了变量temp,但如果您想向其追加项目,则必须初始化数组:

var temp = [cell]()

顺便说一句:类名应该以大写字母开头。

【讨论】:

以上是关于斯威夫特 3 - 'EXC_BAD_INSTRUCTION(代码 = EXC_1386_INVOP,子代码 = 0x0)' 错误的主要内容,如果未能解决你的问题,请参考以下文章

平移图像后面的黑色背景。斯威夫特 3

为啥导航栏中没有显示标题?斯威夫特 3

UIImageView 周围的填充。斯威夫特 3

斯威夫特 3 |核心数据 |自定义实体

斯威夫特 3 NSMuttableArray

tableView Cell 不显示数据,这是啥问题? (斯威夫特 3)