为啥不用“import CoreLocation”就可以访问 iPhone 的位置?

Posted

技术标签:

【中文标题】为啥不用“import CoreLocation”就可以访问 iPhone 的位置?【英文标题】:Why can I access iPhone's location without "import CoreLocation"?为什么不用“import CoreLocation”就可以访问 iPhone 的位置? 【发布时间】:2019-06-24 17:38:03 【问题描述】:

我可以使用以下代码访问设备的位置。我正在使用 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)")
        
    


【问题讨论】:

【参考方案1】:

MapKit 导入 CoreLocation,因此您不需要这样做。就像您不需要导入 Foundation 一样,因为您可以从 UIKit 获得它。

【讨论】:

以上是关于为啥不用“import CoreLocation”就可以访问 iPhone 的位置?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我不用 * 声明 NSInteger

为啥我不用 npm 来安装 yarn?

为啥不用 GOTO 语句? [关闭]

为啥都不用Qt Quick Controls 2呢

为啥不用 DbConnection 而不是 SqlConnection 或 OracleConnection?

为啥在 TCP 中使用 bind()?为啥它只用在服务器端而不用在客户端?