我有一个protocol
,用于定义实现此property
的{{1}}和class
。当我尝试从定义为此类的变量获取此属性时,它工作正常,但是当我尝试从定义为此协议的变量中获取它时,我得到以下错误。
EXC_BAD_ACCESS(代码= 1,地址= 0x10)
protocol
现在失败了:
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
对象的引用。如何解决这个问题?为什么会失败?