前提・実現したいこと
SwiftでiBeacon検知をしています。
CoreLocationというフレームワークを利用していて、
以下のコード内のセキュリティ認証のステータスを取得するところで、
authorizationStatus()の部分で「iOS14では非推奨です。」
というwarningが出ます。
iOS14以降の位置情報の認証ステータスの取得方法が良くわかりません。
コードをどのように変えたら良いかご教示頂けると幸いです。
発生している問題・エラーメッセージ
'authorizationStatus()' was deprecated in iOS 14.0
該当のソースコード
Swift
1 // 位置情報の認証ステータスを取得 2 let status = CLLocationManager.authorizationStatus() 3 4 // 位置情報の認証が許可されていない場合は認証ダイアログを表示 5 if (status != CLAuthorizationStatus.authorizedWhenInUse) { 6 locationManager.requestWhenInUseAuthorization()
試したこと
iOS14でのCore Location変更点
https://qiita.com/torishima__/items/66e07c61ce4a3142832f
より
swift
1func locationManagerDidChangeAuthorization(_ manager: CLLocationManager) { 2 let status = manager.authorizationStatus 3 switch status { 4 case .authorizedWhenInUse: 5 locationManager.requestWhenInUseAuthorization() 6 case .notDetermined, .denied, .restricted: 7 break 8 default: 9 break 10 } 11 }
というプログラムを書いた結果エラーは無くなったが、アプリでの確認の際に位置情報の許可を求めるダイアログが発生しませんでした。
補足情報(FW/ツールのバージョンなど)
iOS15.2
Swift5
Xcode.Ver13.2.1
あなたの回答
tips
プレビュー