У меня есть 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
объекта.Как это исправить?Почему не получается?