我正在使用swift 2.0以及部署目标为7.0的项目。当我使用
时location.requestAlwaysAuthorization()
错误被抛出。我知道这个特殊的方法不适用于ios 7.我的问题是..如果我添加
@available(ios 8.0 , *)
它是否适用于具有ios 7.0的设备,或者仅当设备为> = ios 8.0时才会处理此特定功能?请帮助。
答案 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()
这样,位置授权可以由requestAlwaysAuthorization
或startUpdatingLocation
请求,具体取决于操作系统。