当前位置 : 主页 > 手机开发 > 其它 >

使用多维数组时,Swift上的多维数组 – EXC_BAD_INSTRUCTION(代码= EXC_I386_INVOP,子代码

来源:互联网 收集:自由互联 发布时间:2021-06-11
当我尝试创建一个包含枚举数组的数组时,我收到此错误. 为了更好地说明这里的代码: let block1:Form[] = [Form.Circle, Form.Rectangle, Form.Triangle]let block2:Form[] = [Form.Rectangle, Form.Circle, Form.Triang
当我尝试创建一个包含枚举数组的数组时,我收到此错误.

为了更好地说明这里的代码:

let block1:Form[] = [Form.Circle, Form.Rectangle, Form.Triangle]
let block2:Form[] = [Form.Rectangle, Form.Circle, Form.Triangle]
let block3:Form[] = [Form.Rectangle, Form.Triangle, Form.Circle]
let block4:Form[] = [Form.Circle, Form.Triangle, Form.Rectangle]
let block5:Form[] = [Form.Triangle, Form.Circle, Form.Rectangle]
let block6:Form[] = [Form.Triangle, Form.Rectangle, Form.Circle]
var allBlocks:(Form[][])!

这些是包含枚举的数组,最后一个将保存这些数组.

override func didMoveToView(view: SKView) {

          allBlocks = [block1, block2, block3, block4, block5, block6] //Error here
...
}

当我尝试将值分配给allBlocks时发生错误

如果我将代码更改为此,则不会出现错误:

let block1:Form[] = [Form.Circle, Form.Rectangle, Form.Triangle]
let block2:Form[] = [Form.Rectangle, Form.Circle, Form.Triangle]
let block3:Form[] = [Form.Rectangle, Form.Triangle, Form.Circle]
let block4:Form[] = [Form.Circle, Form.Triangle, Form.Rectangle]
let block5:Form[] = [Form.Triangle, Form.Circle, Form.Rectangle]
let block6:Form[] = [Form.Triangle, Form.Rectangle, Form.Circle]

override func didMoveToView(view: SKView) {

         var allBlocks = [block1, block2, block3, block4, block5, block6] //No error
...
}

但后来我无法在另一个地方访问allBlocks变量.

编辑:如果有帮助

这听起来像一个Swift编译器错误;崩溃是由于尝试执行非法的x86指令,因此编译器生成了无效代码或者生成了一个非完全代码或者不是指令开头的分支.

据推测,您正在对Xcode进行beta测试,因此,如果您还没有可以在Radar ^ WApple Bug Reporter上提交错误的Apple Developer Connection帐户,请打开一个帐户,然后提交错误. (作为Xcode下载的一部分,Apple可能已经提供了相关详细信息.)

网友评论