-1

アプリケーションでランダムなクラッシュが発生しました。最終的に、UIVIew 要素を追加してその中心位置を変更すると、クラッシュが発生することがわかりました。クラッシュは IPad Air 2 では発生しませんが、シナリオは IPad Air でも一貫しています。UIView がオンの場合、クラッシュが発生し、ビューが削除されるとクラッシュが消えます。クラッシュは、次のスタックで非同期に発生します。

#0  0x0000000190bf1f28 in gpus_ReturnGuiltyForHardwareRestart ()
#1  0x0000000190bf2ec4 in gpusSubmitDataBuffers ()
#2  0x0000000189d56254 in gliPresentViewES_Exec ()
#3  0x0000000189d5616c in gliPresentViewES ()
#4  0x0000000189d63cbc in -[EAGLContext presentRenderbuffer:] ()
#5  0x0000000101ff8078 in EAGLContext_presentRenderbuffer(EAGLContext*, objc_selector*, unsigned long) ()
#6  0x00000001877dc638 in -[GLKView _display:] ()
#7  0x000000018b55eeb8 in CA::Layer::display() ()
#8  0x000000018b5413a0 in CA::Layer::display_if_needed(CA::Transaction*) ()
#9  0x000000018b54108c in CA::Layer::layout_and_display_if_needed(CA::Transaction*) ()
#10 0x000000018b54071c in CA::Context::commit_transaction(CA::Transaction*) ()
#11 0x000000018b540470 in CA::Transaction::commit() ()
#12 0x000000018b539c10 in CA::Transaction::observer_callback(__CFRunLoopObserver*, unsigned long, void*) ()
#13 0x000000018666f3f8 in __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ ()
#14 0x000000018666d19c in __CFRunLoopDoObservers ()
#15 0x000000018666d5cc in __CFRunLoopRun ()
#16 0x000000018659d280 in CFRunLoopRunSpecific ()
#17 0x00000001915500cc in GSEventRunModal ()
#18 0x000000018bd8adf8 in UIApplicationMain ()
#19 0x000000010077d36c in main at /Code/splinedr/Splinedr/main.mm:18
#20 0x000000019b7fa8b8 in start ()

呼び出しを使用して OpenGL をレンダリングし[self.view needDisplay]、その直前に UIView を変更します。

この問題にどのように対処すればよいですか?

4

2 に答える 2

0

Apple は、例外はバックグラウンドでの誤用を示しており、バックグラウンドに入るアプリが OpenGL ES を使用して一時停止または停止することを強く推奨していると述べています。

マルチタスク対応の OpenGL ES アプリを実装するための Apple ドキュメント

于 2017-04-24T08:42:44.320 に答える