【问题标题】:Swift, SpriteKit and multidimensional arrays with CGPointSwift、SpriteKit 和带有 CGPoint 的多维数组
【发布时间】:2014-08-14 15:08:12
【问题描述】:

SKSpriteNode 派生类的属性中使用带有CGPoint 的多维数组时出现错误。 仅在这些情况下。

错误是:

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

  • 我尝试使用 double → 工作
  • 我尝试使用 CGPoint 作为函数内部的变量 → 工作
  • 我尝试了使用不是从 SKSpriteNode 派生的类的失败代码 → 工作

Xcode 6.0 测试版 2

有什么想法吗?


这是我的测试代码:

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)")
    }
}

【问题讨论】:

标签: multidimensional-array swift sprite-kit ios8 xcode6


【解决方案1】:

它已在 Xcode 的更高版本中修复。问题不再出现。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-26
    • 1970-01-01
    • 1970-01-01
    • 2014-07-25
    • 1970-01-01
    相关资源
    最近更新 更多