我是iOS和swift的新手。我正在使用MapKit,我正在尝试更新用户的位置。我已经确定它没有运行didUpdateLocations
方法。我正在尝试使用requestWhenInUseAuthorization
和requestAlwaysAuthorization
方法,但仍然没有。
这是错误:
Trying to start MapKit location updates without prompting for location authorization. Must call -[CLLocationManager requestWhenInUseAuthorization] or -[CLLocationManager requestAlwaysAuthorization] first.
以下是代码:
if (CLLocationManager.locationServicesEnabled()) {
println("CLLocationManager")
manager = CLLocationManager()
manager.requestAlwaysAuthorization()
manager.requestWhenInUseAuthorization()
manager.delegate = self
manager.desiredAccuracy = kCLLocationAccuracyBest
manager.startUpdatingLocation()
updateCoordinates()
let prefs:NSUserDefaults = NSUserDefaults.standardUserDefaults()
}
我也尝试将requests
放在delegate
之后,然后放在desiredAccuracy
之后。
知道怎么解决吗?
答案 0 :(得分:1)
您必须将此密钥添加到yourApp-info.plist:NSLocationAlwaysUsageDescription或NSLocationWhenInUseUsageDescription(两者都更好)。您添加此密钥,文本是请求用户使用的消息。