<!--
{
  "availability" : [
    "iOS: 5.0.0 -",
    "iPadOS: 5.0.0 -",
    "macCatalyst: 13.1.0 -",
    "macOS: 10.15.0 -",
    "watchOS: 2.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "CoreMotion",
  "identifier" : "/documentation/CoreMotion/CMMagnetometerHandler",
  "metadataVersion" : "0.1.0",
  "role" : "Type Alias",
  "symbol" : {
    "kind" : "Type Alias",
    "modules" : [
      "Core Motion"
    ],
    "preciseIdentifier" : "c:@T@CMMagnetometerHandler"
  },
  "title" : "CMMagnetometerHandler"
}
-->

# CMMagnetometerHandler

The type of block callback for handling magnetometer data.

```
typealias CMMagnetometerHandler = (CMMagnetometerData?, (any Error)?) -> Void
```

## Discussion

Blocks of type `CMMagnetometerHandler` are called when there is magnetometer data to process. You pass the block into the [`startMagnetometerUpdates(to:withHandler:)`](/documentation/CoreMotion/CMMotionManager/startMagnetometerUpdates(to:withHandler:)) method as the second argument. Blocks of this type return no value but take two arguments:

- `magnetometerData`: An object that encapsulates a [`CMMagneticField`](/documentation/CoreMotion/CMMagneticField) structure with fields holding magnetic-field values for the three axes of movement.
- `error`: An error object representing an error encountered in providing magnetometer data. If an error occurs, you should stop magnetometer updates and inform the user of the problem. If there is no error, this argument is `nil`. Core Motion errors are of the [`CMErrorDomain`](/documentation/CoreMotion/CMErrorDomain) domain and the [`CMError`](/documentation/CoreMotion/CMError) type.

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)