ios - SpriteKit 和 UIKit 兼容性 : OpenGL error when migrating to Swift 2?

标签 ios swift opengl-es sprite-kit

我只是不明白自从我迁移到 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/

相关文章:

ios - 在没有 API 的情况下以 swift 显示网页内容

ios - UIButton 子类来设置按钮 Xcode/Swift 的高度

android - 在 Android 中选择 EGL 配置的正确方法是什么?

ios - 为什么 iOS 设备上的 glGenerateMipmap() 会占用如此多的客户端内存?

ios - 如何过滤swiftyjson数组

ios - 应用内购买错误

ios - swift 2.0 中的 MKMapItem 错误

autolayout - 在 Swift 中使用自动布局视觉格式?

ios - 10.5"iPad Pro 上的 CADisplayLink 帧率

iphone - 奇怪的 NSMutableDictionary 行为