应用程序在“startDeviceMotionUpdatesToQueue' CMMotionManager回调

时间:2018-05-22 07:31:33

标签: ios objective-c crash exc-bad-access

在我的项目中,我使用过CoreMotion,我的代码是img。有时它会崩溃,但我无法重复,而且我也不知道为什么......有人可以帮我吗?我被它折磨了很长时间......

startMotionManager:

enter image description here

handler

crash]

1 个答案:

答案 0 :(得分:0)

Please try this code

    import CoreMotion

    var motionManager: CMMotionManager?

        override func viewDidLoad() {
                super.viewDidLoad()
                motionManager = CMMotionManager()
                if motionManager?.isDeviceMotionAvailable == true {

                    motionManager?.deviceMotionUpdateInterval = 0.1;

                    let queue = OperationQueue()
                    motionManager?.startDeviceMotionUpdates(to: queue, withHandler: { [weak self] (motion, error) -> Void in

                        // Get the attitude of the device
                        if let attitude = motion?.attitude {
                            // Get the pitch (in radians) and convert to degrees.
                            // Import Darwin to get M_PI in Swift
                            print(attitude.pitch * 180.0/M_PI)
                            }
                    })

                    print("Device motion started")
                }
                else {
                    print("Device motion unavailable");
                }
                // Do any additional setup after loading the view, typically from a nib.
            }


based on attitude.pitch you can know Device angle and rotation on ( + & - )