<!--
{
  "availability" : [
    "iOS: 17.0.0 -",
    "iPadOS: 17.0.0 -",
    "macCatalyst: 17.0.0 -",
    "macOS: 14.0.0 -",
    "tvOS: -",
    "visionOS: -",
    "watchOS: -"
  ],
  "documentType" : "symbol",
  "framework" : "CoreLocation",
  "identifier" : "/documentation/CoreLocation/CLMonitor-6ynwz",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "Core Location"
    ],
    "preciseIdentifier" : "c:objc(cs)CLMonitor"
  },
  "title" : "CLMonitor"
}
-->

# CLMonitor

An object that monitors the conditions you add to it.

```
@interface CLMonitor : NSObject
```

## 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

[`requestMonitorWithConfiguration:completion:`](/documentation/CoreLocation/CLMonitor-6ynwz/requestMonitorWithConfiguration:completion:)

Creates a location monitor with the configuration and event handler you provide.

[`CLMonitorConfiguration`](/documentation/CoreLocation/CLMonitorConfiguration)

An object for configuring a location monitor instance.

### Accessing the location monitor’s identifiers

[`monitoredIdentifiers`](/documentation/CoreLocation/CLMonitor-6ynwz/monitoredIdentifiers)

An array that contains all the identifiers for each condition that the monitor is monitoring.

[`name`](/documentation/CoreLocation/CLMonitor-6ynwz/name)

The name associated with the location monitor instance.

### Adding and removing conditions

[`addConditionForMonitoring:identifier:`](/documentation/CoreLocation/CLMonitor-6ynwz/addConditionForMonitoring:identifier:)

Adds a condition to monitor with the identifier you provide.

[`addConditionForMonitoring:identifier:assumedState:`](/documentation/CoreLocation/CLMonitor-6ynwz/addConditionForMonitoring:identifier:assumedState:)

Adds a condition to monitor with the state and identifier you provide.

[`monitoringRecordForIdentifier:`](/documentation/CoreLocation/CLMonitor-6ynwz/monitoringRecordForIdentifier:)

Gets the monitoring record containing the condition and most recent monitoring event for the identifier you supply, if applicable.

[`removeConditionFromMonitoringWithIdentifier:`](/documentation/CoreLocation/CLMonitor-6ynwz/removeConditionFromMonitoringWithIdentifier:)

Removes the monitoring record with the identifier from monitoring.

### Location monitor events

[`CLMonitoringEvent`](/documentation/CoreLocation/CLMonitoringEvent)

The object that the framework passes to the monitor’s callback handler upon receiving an event.

[`CLMonitoringRecord`](/documentation/CoreLocation/CLMonitoringRecord)

An object that represents a condition and its associated information that a location monitor is monitoring.

### Location monitor conditions

[`CLCircularGeographicCondition`](/documentation/CoreLocation/CLCircularGeographicCondition)

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

[`CLBeaconIdentityCondition`](/documentation/CoreLocation/CLBeaconIdentityCondition)

A condition that describes the identity characteristics of a beacon.



---

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)