<!--
{
  "availability" : [
    "iOS: 4.0.0 -",
    "iPadOS: 4.0.0 -",
    "macCatalyst: 13.1.0 -",
    "macOS: 10.8.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "CoreLocation",
  "identifier" : "/documentation/CoreLocation/CLLocationManager/monitoredRegions",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Property",
  "symbol" : {
    "kind" : "Instance Property",
    "modules" : [
      "Core Location"
    ],
    "preciseIdentifier" : "c:objc(cs)CLLocationManager(py)monitoredRegions"
  },
  "title" : "monitoredRegions"
}
-->

# monitoredRegions

The set of shared regions monitored by all location-manager objects.

```
var monitoredRegions: Set<CLRegion> { get }
```

## Discussion

You cannot add regions to this property directly. Instead, you must register regions by calling the [`startMonitoring(for:)`](/documentation/CoreLocation/CLLocationManager/startMonitoring(for:)) method. The regions in this property are shared by all instances of the [`CLLocationManager`](/documentation/CoreLocation/CLLocationManager) class in your app.

The objects in this set may not necessarily be the same objects you specified at registration time. Only the region data itself is maintained by the system. Therefore, the only way to uniquely identify a registered region is using its [`identifier`](/documentation/CoreLocation/CLRegion/identifier) property.

The location manager persists region data between launches of your app. If your app is terminated and then relaunched, the contents of this property are repopulated with region objects that contain the previously registered data.

In a compatible iPad or iPhone app running in visionOS, the property contains an empty set.

---

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)