私はiOS 9.3用のアプリをswiftで作成しており、ユーザーの場所を示すために地図が必要です。 私はCLLocationManagerとそのデリゲートを初期化し、私はInfo.plistの プライバシー設定 - 場所の使用説明文字列をしてrequestWhenInUseAuthorizationを呼び出すが、それはすべての認証要求は表示されません。ここでSwift requestWhenInUseAuthorization not working
は私のコードです:
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(iOS 9.3)シミュレータでテストしています。
このような問題は何ですか? 誰にも助言がありますか?
私はmostraPosizione内)ので、nilで解決することはできません== – SunilG