为什么我可以在没有 "import CoreLocation" 的情况下访问 iPhone 的位置?

Why can I access iPhone's location without "import CoreLocation"?

我可以使用以下代码访问设备的位置。我正在使用 MapKit 而不是 CoreLocation。我以为这个实例 CLLocationManager() 和方法 requestAlwaysAuthorization() 只能通过 CoreLocation 框架使用?

import UIKit
import MapKit

class ViewController: UIViewController, CLLocationManagerDelegate {

    var locationManager = CLLocationManager()

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.

        locationManager.delegate = self

        self.locationManager.requestAlwaysAuthorization()

        locationManager.startUpdatingLocation()

    }

    func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
        for currentlocation in locations{
            print("\(index): \(currentlocation)")
        }
    }

}

MapKit 导入 CoreLocation,因此您不需要。就像你不需要导入 Foundation 因为你从 UIKit 中得到它一样。