为什么我不能使用manager.locationServicesEnabled()

时间:2019-04-21 17:35:33

标签: ios swift core-location

我正在检查是否为该应用程序启用了位置服务。查看下面的代码,为什么locationManager的类型为CLLocationManager,为什么我不能使用“!manager.locationServicesEnabled()”?

override func viewDidLoad() {
    super.viewDidLoad()

    enableLocationServices(manager: locationManager)

}

func enableLocationServices(manager: CLLocationManager) {

    manager.delegate = self

    if !CLLocationManager.locationServicesEnabled() {
        manager.requestWhenInUseAuthorization()
    }
}

1 个答案:

答案 0 :(得分:1)

假设您要问为什么必须使用CLLocationManager.locationServicesEnabled()而不是manager.locationServicesEnabled(),那么答案很简单,就是locationServicesEnabled是类型方法,必须在类上调用,而不是班级。

在查看方法或属性的文档时,如果其以classstatic开头,则可以直接在类,结构或枚举上调用它。如果它不是以classstatic开头,则可以在类,结构或枚举的特定实例上调用它。