简体   繁体   English

带有CGPoint的Swift,SpriteKit和多维数组

[英]Swift, SpriteKit and multidimensional arrays with CGPoint

I get an error when using a multidimensional array with CGPoint in a property at a SKSpriteNode derived class. SKSpriteNode派生类的属性中使用带有CGPoint的多维数组时出现错误。 Only under these circumstances. 只有在这种情况下。

Error is: 错误是:

EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP,subcode=0x0) EXC_BAD_INSTRUCTION(代码= EXC_I386_INVOP,子代码= 0x0)

  • I tried with double → worked 我尝试过double →工作
  • I tried with CGPoint as a variable inside the function → worked 我尝试用CGPoint作为函数内部的变量→工作
  • I tried the failing code with a class not derived from SKSpriteNode → worked 我尝试使用不是从SKSpriteNode派生的类的失败代码→工作

Xcode 6.0 beta 2 Xcode 6.0 beta 2

Any ideas? 有任何想法吗?


Here is my test code: 这是我的测试代码:

import SpriteKit

class TestSprite: SKSpriteNode {

    var myOuterArray = Array<Array<CGPoint>>()
    var myOuterDoubleArray = Array<Array<Double>>()

    init()  {
        super.init(texture:nil, color:UIColor.clearColor(), size: CGSizeZero)
        self.testWithInnerArray()
        self.testWithOuterArray()
        self.testWithOuterDoubleArray()
    }

    // breaks
    func testWithOuterArray(){
        myOuterArray.append(Array(count:1, repeatedValue:CGPoint())) // << ERROR!
        println("myOuterArray.count : \(myOuterArray.count)")
    }

    // works
    func testWithOuterDoubleArray(){
        myOuterDoubleArray.append(Array(count:1, repeatedValue:Double()))
        println("myOuterDoubleArray.count : \(myOuterDoubleArray.count)")
    }

    // works
    func testWithInnerArray(){
        var myInnerArray = Array<Array<CGPoint>>()
        myInnerArray.append(Array(count:1, repeatedValue:CGPoint()))
        println("myInnerArray.count : \(myInnerArray.count)")
    }
}

It's fixed in a later release of Xcode. 它已在Xcode的更高版本中修复。 Problem doesn't occur any more. 问题不再发生。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM