在网上进行了一些调查,我注意到gpus_ReturnNotPermittedKillClient
当应用程序在后台运行时触发 OpenGL 操作时会抛出异常。我目前正在从事一个涉及地图视图和叠加层的项目(使用 Apple 的Breadcrumb 示例代码)。这些操作在主线程上执行,但是当地图视图被初始化或视图被推送到屏幕上时,应用程序可能会进入后台。
我还使用定位服务通过 GPS 检索点,但除非我们在前台,否则我不会更新叠加层。
据我了解,自 iOS 6 以来,MKMapView 现在是使用 OpenGL 创建的吗?如果是这种情况,那么绘制叠加层也可以通过 OpenGL 吗?这可以帮助解释为什么我一直随机收到此错误。
我听说过一些取消所有 OpenGL 操作的方法,例如调用glFinish()
和applicationDidEnterBackground
或applicationWillResignActive
使用[[CCDirector sharedDirector] pause]
. 考虑到这一点,使用 MKMapView/MKOverlayView 消除任何 OpenGL 绘图的最佳解决方案是什么?