2017-11-15 4 views
0

Die Frage oder Antwort wurde nicht gefunden, daher wurde sie selbst gepostet. Meine App stürzt ab, wenn ich Allow camera control für meine SCNView aktiviert habe, wische dann, damit die Kamera sich zu drehen beginnt und drücke dann die Zurück-Taste in der Navigationsleiste. Crash Stacktrace:App stürzt auf Zurück-Schaltfläche ab, wenn sich SCNCamera dreht

* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x18) 
    frame #0: 0x0000000113e3d94b libobjc.A.dylib`objc_msgSend + 11 
    frame #1: 0x00000001158a2eb6 SceneKit`__42-[SCNCameraController _setInertiaRunning:]_block_invoke.166 + 31 
    frame #2: 0x00000001173e33f7 libdispatch.dylib`_dispatch_call_block_and_release + 12 
    frame #3: 0x00000001173e443c libdispatch.dylib`_dispatch_client_callout + 8 
    frame #4: 0x00000001173ef6f0 libdispatch.dylib`_dispatch_main_queue_callback_4CF + 628 
    frame #5: 0x00000001149bbee9 CoreFoundation`__CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 9 
    frame #6: 0x0000000114980592 CoreFoundation`__CFRunLoopRun + 2402 
    frame #7: 0x000000011497f9b9 CoreFoundation`CFRunLoopRunSpecific + 409 
    frame #8: 0x00000001199a29c6 GraphicsServices`GSEventRunModal + 62 
    frame #9: 0x000000011029b5e8 UIKit`UIApplicationMain + 159 
    * frame #10: 0x000000010e6f73e7 ShowIt`main at AppDelegate.swift:13 
    frame #11: 0x0000000117460d81 libdyld.dylib`start + 1 
    frame #12: 0x0000000117460d81 libdyld.dylib`start + 1 

So Nachricht senden Kamera und App-Abstürze ausgeplant.

+0

Nicht sicher, was 'pointOfView' in Ihrer Sicht ist. Aber es scheint, dass es behoben werden kann, indem man es "schwache" Referenz macht. Ich schätze das aus deiner eigenen Antwort. – Ryan

+0

Ich habe nichts in 'pointOfView' gesetzt. –

+0

Scheint so, als ob die Ansicht eine starke Referenz hat. Versuche, es schwach zu machen. – Ryan

Antwort

0

diese Lösung gefunden:

override func viewDidDisappear(_ animated: Bool) { 
    super.viewDidDisappear(animated) 

    if isMovingFromParentViewController { 
     // Prevent crash on back tap when camera rotates 
     scnView.pointOfView = nil 
    } 
} 

Im Grunde nur gesetzt Kamera Knoten zu nil wenn Controller Pop.