我只是不明白自从我迁移到 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.
我知道这确实很模糊,但我不知道从哪里开始寻找错误。 谢谢。
编辑: 我刚刚意识到这可能与我试图将 GameViewController 嵌入到 TabbedController 中有关。 不过在iOS 9.0之前并没有引起任何错误。 有什么线索吗?
最佳答案
好的,问题出在 SKShapeNode 上。我正在绘制带有太多顶点的环形部分。通过减少以下函数中的步骤数,问题消失了!!
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;
}
关于ios - SpriteKit 和 UIKit 兼容性 : OpenGL error when migrating to Swift 2?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32677503/