SpriteKit和UIKit兼容性:迁移到Swift 2时出现OpenGL错误?

我只是不明白自从我迁移到Swift 2以来发生了什么。我有一个选项卡式应用程序,我得到这个错误:

<CAEAGLLayer: 0x7fb2e053fb40>: calling -display has no effect. Assertion failed: (length + offset <= _length), function commit_data, file /BuildRoot/Library/Caches/com.apple.xbs/Sources/Jet_Sim/Jet-1.50/Jet/jet_types_OpenGL.h, line 863. 

我知道这是非常含糊的,但我不知道从哪里开始寻找错误。 谢谢。

编辑:我刚刚意识到这可能与我试图将一个GameViewControllerembeddedTabbedController的事实有关。 不过,在iOS 9.0之前并没有造成任何错误。 任何线索?

好的,问题出在SKShapeNode上。 我正在绘制太多顶点的环部分。 通过减less以下function的步骤数量,问题消失!

 func drawPortion2(r1:CGFloat, r2:CGFloat, angle1:CGFloat, angle2:CGFloat, fillColor:UIColor, steps:Int)->SKShapeNode{ let vertices=UnsafeMutablePointer<CGPoint>.alloc(2*steps); let stepsF=CGFloat(steps); for j in 0..<steps{ vertices[j]=CGPoint(x: r2*cos(angle2-CGFloat(j)*(angle2-angle1)/stepsF), y: r2*sin(angle2-CGFloat(j)*(angle2-angle1)/stepsF)); } for j in 0..<steps { vertices[steps+j]=CGPoint(x: r1*cos(angle2-CGFloat(steps-j)*(angle2-angle1)/stepsF), y: r1*sin(angle2-CGFloat(steps-j)*(angle2-angle1)/stepsF)); } let portion=SKShapeNode(points:vertices, count: 2*steps); //portion.position=centerPos; portion.fillColor=fillColor; return portion; }