<!--
{
  "availability" : [
    "iOS: 6.0.0 -",
    "iPadOS: 6.0.0 -",
    "macCatalyst: 13.1.0 -",
    "macOS: 10.9.0 -",
    "tvOS: 9.0.0 -",
    "visionOS: 1.0.0 -",
    "watchOS: 2.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "CoreLocation",
  "identifier" : "/documentation/CoreLocation/CLLocationManagerDelegate/locationManager(_:didUpdateLocations:)",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Method",
  "symbol" : {
    "kind" : "Instance Method",
    "modules" : [
      "Core Location"
    ],
    "preciseIdentifier" : "c:objc(pl)CLLocationManagerDelegate(im)locationManager:didUpdateLocations:"
  },
  "title" : "locationManager(_:didUpdateLocations:)"
}
-->

# locationManager(_:didUpdateLocations:)

Tells the delegate that new location data is available.

```
optional func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation])
```

## Parameters

`manager`

The location manager object that generated the update event.

`locations`

An array of [`CLLocation`](/documentation/CoreLocation/CLLocation) objects containing the location data. This array always contains at least one object representing the current location. If updates were deferred or if multiple locations arrived before they could be delivered, the array may contain additional entries. The objects in the array are organized in the order in which they occurred. Therefore, the most recent location update is at the end of the array.

## Discussion

Implementation of this method is optional but recommended.

## Topics

### Related Documentation

  <doc://com.apple.documentation/documentation/MapKit>

  <doc://com.apple.documentation/documentation/MapKitJS>



---

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)