首页 > 解决方案 > 覆盖功能似乎没有触发

问题描述

我有一段看似没有错误的代码,但没有发生覆盖,我无法检测到设备运动

   let motion = CMMotionManager()  

//start override
override func viewDidLoad() {
super.viewDidLoad()
//check is motion is active
if motion.isDeviceMotionActive {
 //setting interval
    motion.deviceMotionUpdateInterval = 0.01
 //starting updates
    motion.startDeviceMotionUpdates(to: .main) {
        [weak self] (data, error) in

        guard let data = data, error == nil else {
            return
        }

        let rotation = data.gravity.y

        self!.yAccel.text = "Accel = \(Double(rotation))"
         }
        }
       }

我应该期望覆盖函数能够一致地重新加载并将数据保存到指定的变量

标签: swift

解决方案


我猜你犯了一个错误。应该有

if motion.isAccelerometerAvailable {

代替:

if motion.isDeviceMotionActive {

推荐阅读