IOS 中什么是 Core Location?如何使用?代码举例讲解

Core Location 是苹果提供的定位服务框架。我们可以使用它来获取设备的位置和区域信息。

使用 Core Location 的基本步骤:

  1. 添加定位服务使用说明(NSLocationUsageDescription)到 Info.plist。
  2. 创建 CLLocationManager 对象并设置其代理。
  3. 调用 locationManager.requestWhenInUseAuthorization() 向用户请求定位服务权限。
  4. 实现 CLLocationManagerDelegate 协议的方法来获取定位更新。
  5. 调用 locationManager.startUpdatingLocation() 方法开始更新位置。
  6. 获取 CLLocation 对象,它包含纬度、经度、海拔高度、航向等信息。
  7. 调用 locationManager.stopUpdatingLocation() 方法停止更新位置。
  8. (可选)使用 CLGeocoder 反Geo编码服务翻译位置坐标为地理位置信息。

下面是一个简单的 Core Location 示例:

swift
let locationManager = CLLocationManager()
locationManager.delegate = self
locationManager.requestWhenInUseAuthorization()
locationManager.startUpdatingLocation()

func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
    let location = locations.last!
    print("Latitude: \(location.coordinate.latitude)")
    print("Longitude: \(location.coordinate.longitude)")
}

locationManager.stopUpdatingLocation()

let geocoder = CLGeocoder()
geocoder.reverseGeocodeLocation(location) { (placemarks, error) in
    if let placemark = placemarks?.first {
        print(placemark.name!)
        print(placemark.subAdministrativeArea!)
        print(placemark.Iso3CountryCode!)
    }
}