我无法调用MKMapView
委托方法didUpdateUserLocation
。
到目前为止我做了什么:
MapKit.framwork
在项目中添加框架import MapKit
在视图控制器中逐行导入框架在 plist 文件中添加密钥
<key>NSLocationAlwaysUsageDescription</key> <true/>
视图控制器中的代码
添加了检查位置的委托didUpdateUserLocation
方法是否更新但从未调用。
// MARK: - MapView delegate methods
func mapView(mapView: MKMapView!, regionDidChangeAnimated animated: Bool) {
// Calling...
}
func mapView(mapView: MKMapView!, didUpdateUserLocation userLocation: MKUserLocation!) {
// Not getting called
}
// MARK: - View lifeCycle methods
override func viewDidLoad() {
super.viewDidLoad()
var locationManager = CLLocationManager()
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.requestWhenInUseAuthorization()
locationManager.startUpdatingLocation()
self.mapView.delegate = self
self.mapView.showsUserLocation = true
self.mapView.pitchEnabled = true
self.mapView.showsBuildings = true
}
我已经使用模拟器并更改模拟器自定义位置来检查它是否被调用?该方法regionDidChangeAnimated
被完美调用!
同样的事情适用于 iOS7。Swift 地图位置更新还有哪些额外的努力?
编辑: Plist 键
也没有提示权限警报。