【发布时间】: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)")
}
}
【问题讨论】:
-
您的代码对我来说很好用。我相信这是一个 Swift 编译器错误。
-
我刚刚验证了 iOS 8、Seed 3 (Build 12A4318c) 上的步骤。我仍然可以遇到这个问题。你运行代码@pasta12 了吗?
-
我在操场上试过,但对我也不起作用。只有你说的
testWithOuterArray()函数。
标签: multidimensional-array swift sprite-kit ios8 xcode6