【发布时间】:2016-08-26 14:38:32
【问题描述】:
我正在使用 swift 为 iOS 9.3 编写一个应用程序,需要一张地图来显示用户位置。 我初始化 CLLocationManager 及其委托,我配置 info.plist Privacy - Location Usage Description 字符串并调用 requestWhenInUseAuthorization 但它不显示任何授权请求。
这是我的代码:
import UIKit
import MapKit
class DetailController: UIViewController, CLLocationManagerDelegate {
var locManager: CLLocationManager!
@IBOutlet var myMap: MKMapView!
override func viewDidLoad() {
super.viewDidLoad()
mostraPosizione()
}
func mostraPosizione(){
locManager = CLLocationManager()
locManager.delegate = self
locManager.desiredAccuracy = kCLLocationAccuracyBest
let authorizationStatus = CLLocationManager.authorizationStatus()
if (authorizationStatus == CLAuthorizationStatus.NotDetermined) {
locManager.requestWhenInUseAuthorization()
} else {
locManager.startUpdatingLocation()
}
myMap.showsUserLocation = true
}
func locManager(manager: CLLocationManager,
didChangeAuthorizationStatus status: CLAuthorizationStatus) {
if (status == CLAuthorizationStatus.NotDetermined) {
locManager.requestWhenInUseAuthorization()
} else {
locManager.startUpdatingLocation()
}
}
}
Xcode 输出:
尝试在不提示位置授权的情况下启动 MapKit 位置更新。 必须调用 -[CLLocationManager requestWhenInUseAuthorization] 或 -[CLLocationManager requestAlwaysAuthorization] 首先。
我正在 iPhone 5 s (iOS 9.3) 模拟器上测试它。
这东西有什么问题? 有人有什么建议吗?
【问题讨论】:
-
我认为您在使用 plist 中的描述键时缺少位置
标签: swift location cllocationmanager