从协议访问var时的EXC_BAD_ACCESS

时间:2018-05-22 08:17:09

标签: ios swift scenekit arkit

我有一个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对象的引用。如何解决这个问题?为什么会失败?

0 个答案:

没有答案