我的Swift-iOS应用程序旨在在地图上显示用户的位置。然而,XCode调试控制台告诉我我需要请求权限来显示用户的位置。我认为我已经做到了,但是对话框从未出现。
这是错误消息,下面是我调用CLLocationManager::requestWhenInUseAuthorization()
的ViewController:
错误:
2014-06-30 21:25:13.927 RowingTracker2[17642:1608253] 尝试在未经许可的情况下启动MapKit位置更新。必须首先调用-[CLLocationManager requestWhenInUseAuthorization]或-[CLLocationManager requestAlwaysAuthorization]。
ViewController:
import UIKit
import MapKit
import CoreLocation
class ViewController: UIViewController, MKMapViewDelegate {
@IBOutlet var mapview: MKMapView = nil
var locationmgr : CLLocationManager!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
locationmgr = CLLocationManager()
locationmgr.requestWhenInUseAuthorization()
mapview.showsUserLocation = true
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
如何请求使用位置授权?您可以在这里找到完整的项目。(提交记录)
信息
即使让ViewController继承CLLocationManagerDelegate
并将代理设置为self
(如此处所示),也无法解决问题。