<!--
{
  "availability" : [
    "iOS: 17.0.0 -",
    "iPadOS: 17.0.0 -",
    "macCatalyst: 17.0.0 -",
    "macOS: 14.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "CoreLocation",
  "identifier" : "/documentation/CoreLocation/CLMonitor-2r51v",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "Core Location"
    ],
    "preciseIdentifier" : "s:12CoreLocation9CLMonitorC"
  },
  "title" : "CLMonitor"
}
-->

# CLMonitor

An object that monitors the conditions you add to it.

```
actor CLMonitor
```

## Overview

Use `CLMonitor` to monitor for and observe events such as the entry to a specific geographic area or proximity to a beacon with characteristics that you specify.

This service is unavailable in a compatible iPad or iPhone app running in visionOS.

## Topics

### Creating a monitor

[`init(_:)`](/documentation/CoreLocation/CLMonitor-2r51v/init(_:))

Creates a location monitor with the name you specify.

### Adding and removing conditions

[`add(_:identifier:)`](/documentation/CoreLocation/CLMonitor-2r51v/add(_:identifier:))

Adds the given condition for monitoring.

[`add(_:identifier:assuming:)`](/documentation/CoreLocation/CLMonitor-2r51v/add(_:identifier:assuming:))

Adds the monitoring condition with the identifier and initial state you specify.

[`record(for:)`](/documentation/CoreLocation/CLMonitor-2r51v/record(for:))

A record that contains a condition and the most recent event your app receives.

[`remove(_:)`](/documentation/CoreLocation/CLMonitor-2r51v/remove(_:))

Removes the condition and its enclosed record associated with the identifier you provide.

### Accessing the location monitor’s identifiers

[`identifiers`](/documentation/CoreLocation/CLMonitor-2r51v/identifiers)

An array that contains the identifiers of the conditions the framework is monitoring.

### Accessing the monitor’s events

[`events`](/documentation/CoreLocation/CLMonitor-2r51v/events-swift.property)

An asynchronous sequence of events that represent the conditions the monitor object observes.

### Monitor conditions

[`BeaconIdentityCondition`](/documentation/CoreLocation/CLMonitor-2r51v/BeaconIdentityCondition)

A condition that describes the characteristics of a beacon.

[`CircularGeographicCondition`](/documentation/CoreLocation/CLMonitor-2r51v/CircularGeographicCondition)

A condition that describes a circular geographic area that a center point and radius define.

### Monitor events

[`Event`](/documentation/CoreLocation/CLMonitor-2r51v/Event)

An event object that the framework passes to the events sequence in the monitor.

[`Record`](/documentation/CoreLocation/CLMonitor-2r51v/Record)

A structure that represents a condition and its associated event information that the framework is monitoring.

[`Events`](/documentation/CoreLocation/CLMonitor-2r51v/Events-swift.struct)

A type that represents an asynchronous sequence of events.

### The monitor’s context

## Relationships

### Conforms To

[`SendableMetatype`](/documentation/Swift/SendableMetatype)

[`Sendable`](/documentation/Swift/Sendable)

[`Actor`](/documentation/Swift/Actor)

---

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)