EXC_BAD_ACCESS при доступе к var из протокола - PullRequest
0 голосов
/ 22 мая 2018

У меня есть protocol, который определяет property и class, который реализует это protocol.Когда я пытаюсь получить это свойство из переменной, определенной как этот класс, оно работает нормально, но когда я пытаюсь получить его из переменной, определенной как этот протокол, я получаю ошибку ниже.

EXC_BAD_ACCESS (code = 1), address = 0x10)

internal protocol AugmentedRealityViewDisplayingOnSceneKit where Self: AugmentedRealityView {
    var currentCameraPosition: SCNVector3 { get }    
}

open class AugmentedRealityViewARKit: AugmentedRealityView {
}
extension AugmentedRealityViewARKit: AugmentedRealityViewDisplayingOnSceneKit {

    var currentCameraPosition: SCNVector3 {
        return sceneView.pointOfView?.position ?? .zero
    }
}

Теперь это не удается:

let arView = augmentedRealityView as! AugmentedRealityViewDisplayingOnSceneKit
var cameraPositionAtNodeLevel = arView.currentCameraPosition

Пока все работает нормально:

let arView = augmentedRealityView as! AugmentedRealityViewARKit
var cameraPositionAtNodeLevel = arView.currentCameraPosition

augmentedRealityView является ссылкойдо AugmentedRealityView объекта.Как это исправить?Почему не получается?

...