CLLocationManager requestWhenInUseAuthorization()不使用swift 2.0在ios7上工作

时间:2016-03-16 10:01:00

标签: ios swift

我正在使用swift 2.0以及部署目标为7.0的项目。当我使用

location.requestAlwaysAuthorization()

错误被抛出。我知道这个特殊的方法不适用于ios 7.我的问​​题是..如果我添加

@available(ios 8.0 , *)

它是否适用于具有ios 7.0的设备,或者仅当设备为> = ios 8.0时才会处理此特定功能?请帮助。

2 个答案:

答案 0 :(得分:1)

仅当设备为> = iOS 8.0时才会处理特定功能。

if #available(iOS 8, *)
{
    location.requestAlwaysAuthorization()
} 
else
{
    locationManager.startUpdatingLocation()
}

使用此功能会为在iOS 8+上运行的设备调用requestAlwaysAuthorization(),否则会调用startUpdatingLocation()

答案 1 :(得分:0)

在iOS7上,CLLocationManager在调用startUpdatingLocation时向用户请求位置授权。通常,在兼容iOS7的应用程序上,您最终会编写

if #available(iOS 8.0, *) {
  locationManager.requestAlwaysAuthorization()
}
locationManager.startUpdatingLocation()

这样,位置授权可以由requestAlwaysAuthorizationstartUpdatingLocation请求,具体取决于操作系统。