0

I try use iphone to get CalibratedMagneticField(in geo-coordinate).But is always retrun 0 .(another SO question :CoreMotion - magneticField is always 0:CoreMotion - magneticField is always 0). my version is swift4+ios12. here is my code

func myacc(){
                motion.deviceMotionUpdateInterval = 0.5
                motion.showsDeviceMovementDisplay = true
                motion.startDeviceMotionUpdates(to: OperationQueue.current!) { (data, error) in
                    print(data as Any)
                if let trueData = data {
                    self.view.reloadInputViews()

                    let x = trueData.magneticField.field.x
                    let y = trueData.magneticField.field.y
                    let z = trueData.magneticField.field.z



                    self.xAccel.text = String(x)
                    self.yAccel.text = String(y)
                    self.zAccel.text = String(z)
                    }

            }
mag
  • 1
  • Hi @mag. Have you tried using `motion.startDeviceMotionUpdates(usingReferenceFrame:to:handler:)` as suggested in the linked post? – Sylvan D Ash Aug 09 '20 at 11:01
  • thank you very much,now i have resolved it ,by using motion.startDeviceMotionUpdates(using: CMAttitudeReferenceFrame.xArbitraryCorrectedZVertical, to: OperationQueue.current!) { (data, error) in print(data as Any) – mag Aug 10 '20 at 13:24
  • Glad you resolved it – Sylvan D Ash Aug 11 '20 at 12:34

0 Answers0