如果您已阅读新的iOS 9文档,您可能已经注意到一种新方法,该方法会使位置管理器在短时间内启动无线电,修复您的位置并获得所需的准确度(或超时)到达后,将其全部退回,将精确定位的位置交给代表。
该方法名为CLLocationManager.requestLocation()
,可在iOS 9 SDK中使用。唉,我目前正在开发一款针对iOS 8的应用,并且仍然非常希望使用这种方法。我也不想自己重新实现它。
所以我的问题是:iOS是否有任何开源库实现这种一次性位置检索?
答案 0 :(得分:2)
您需要先执行两个步骤
1)NSLocationWhenInUseUsageDescription
2)NSLocationAlwaysUsageDescription
然后
var locationManager = CLLocationManager()
locationManager.delegate = self
// locationManager.locationServicesEnabled
locationManager.desiredAccuracy = kCLLocationAccuracyBest
let Device = UIDevice.currentDevice()
let iosVersion = NSString(string: Device.systemVersion).doubleValue
let iOS8 = iosVersion >= 8
if iOS8{
locationManager.requestWhenInUseAuthorization()
}
else{
locationManager.requestAlwaysAuthorization()
}
locationManager.startUpdatingLocation()
这将是Help.Thanksyou
答案 1 :(得分:0)
正如 Arslan Asim 所指出的,一个好的解决方案是使用INTULocationManager。
来自文档:
manager.requestLocationWithDesiredAccuracy(.Block, timeout: 10.0) {
(currentLocation, achievedAccuracy, status) in
// Examine status to see if the request timed out.
// If not, currentLocation stores the found location.
}