我试图在我的应用程序中获取用户位置,这是我在iOS 9上的教程之后构建的。我已经完成了相同的操作(据我所知)作为视频中的讲师以及视频它的工作原理,但对我来说它没有。首先,我构建了一个像这样的CLLocationManager:
var locationManager = CLLocationManager()
然后我确保在viewDidLoad()中添加以下代码行:
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.requestWhenInUseAuthorization()
locationManager.startUpdatingLocation()
最后,我创建了一种接收更新位置的方法:
func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
print(locations)
}
到目前为止,我的应用程序中会弹出一个窗口,询问用户是否允许使用该位置,但是当我按下Allow时,没有任何内容在控制台窗口中开始打印。我确保在Info.plist中设置NSLocationWhenInUseUsageDescription和NSLocationAlwaysUsageDescription,但仍然没有工作,我还添加了CoreLocation.framework的东西。由于我对Swift很新,所以对此的任何帮助都将非常感谢!
答案 0 :(得分:0)
确保已将CLLocationManagerDelegate添加到类声明中。
答案 1 :(得分:0)
只需在此代理中检查您的授权状态即可。如果获得授权,您可以更新您的位置。您的授权可能在首次启动时失败。因此,您应该从设置中提供位置访问权限,或删除应用程序,然后重新安装!!
func locationManager(manager: CLLocationManager, didChangeAuthorizationStatus status: CLAuthorizationStatus) {
if status == .AuthorizedWhenInUse || status == .AuthorizedAlways {
print("permissions granted")
}else{
print(status)
}
}