[iOS] Framework - Core Location
8335 ワード
Core Location
Frameworkはデバイスの地理的位置を取得する機能を提供しています
Core locationは、デバイスの地理的位置、高さ、方向、およびデバイスとの相対的な位置を示すフレームワークです.このフレームワークは、これらの地理情報をwifi、セルラーデータ、gps、Bluetoothなどの通信ネットワークを介して取得する.CLLocationManager
クラスのインスタンスを使用して、コアロケーションサービスを設定、起動、および停止することができる.
CLLocation Managerとは何か..。
位置に関連するイベントのオブジェクトを起動または停止できます.
次の場所ベースのアクティビティをサポートします.
CLLocationManagerDelegate
を採用すべきでしょうか?)コア位置フレームワークは、ビューコントローラのCLLocation Managerの初期化時にCLLocation Managerに関するメソッドを呼び出します.
これはどのように利用しますか?
Adding Location Services to Your App
文書を読んだものの、茫然として戸惑った瞬間、やはりアップル!使い方も親切に教えてくれました!
Create the Location Manager and Delegate
前述したように、CLLocationManagerのオブジェクトを作成する必要があります.このインスタンスは、強い参照で構成される必要があります.領域変数として宣言された場合は適切ではありません.これは、すべてのlocation managerオブジェクトが非同期で処理されているため、領域変数として宣言するのは十分ではありません.
上記のビューコントローラの委任作業も、任意のゾーンサービスが開始される前に完了する必要があります.
Handle Errors in the Delegate Methods
ロケーション・サービスが使用できない場合は、失敗に関連するメソッドを使用する必要があります.たとえば、地域モニタサービスが利用できない場合、CCLocation Managerオブジェクトは、
locationManager(_: monitoringDidFailFor:withError:)
メソッドを呼び出してエラー処理を行う必要があります.場合によっては、ロケーション・サービスが使用できない場合、UIを更新する必要があります.Ask for Authorization and Handle Changes
アプリケーションに対応する権限を設定する必要があります.アプリケーションでロケーションベースの機能を実行すると、ロケーション権限をユーザーに問い合わせることができます.
location managerオブジェクトを作成すると、
locationManager(_:didChangeAuthorization:)
と対称なオブジェクトで次の操作を実行できます.この方法を使用すると、アプリケーション権限の変更に対応し、変更に伴う他の操作を実行できます.
Start Location Services and Receive Events
まず委任対象を実施する.
イベント転送は、
直接実施しましょう
import UIKit
import CoreLocation
class KarrotMarketHomeViewController: UIViewController {
private var locationManager: CLLocationManager?
override func viewDidLoad() {
super.viewDidLoad()
setUpLocationManager()
}
private func setUpLocationManager() {
locationManager = CLLocationManager()
locationManager?.requestWhenInUseAuthorization()
}
}
インポートコアの場所から開始する必要があります.ロケーション情報を処理できなくても、LocationManagerの
requestWhenInUseAutorization()
メソッドのみを呼び出す場合は...位置変換情報を表示するが表示されない...どうしてこんなことになったのか...文書をよく読んでください.
この方法に入って、もう少しよく読むと、次のような文があります.
The user prompt contains the textfrom the NSLocationWhenInUseUsageDescription key in your app
Info.plist
, and the presence of that key is required when calling this method.Info.plist
は設置されていないので.では今から設定を始めましょう<dict>
<key>NSLocationWhenInUseUsageDescription</key>
<string>가까운 동네를 검색하거나 동네인증을 위해 현재 위치를 확인합니다.</string>
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>가까운 동네를 검색하거나 동네인증을 위해 현재 위치를 확인합니다.</string>
常に許可され、アプリケーションの実行時に許可されている場合はkeyとvalueが追加されます.そうすれば...ブツブツ~!!
やっとハッピーポジション権限ポップアップウィンドウが見えました!
override func viewDidLoad() {
super.viewDidLoad()
locationManager?.delegate = self
setUpLocationManager()
}
extension KarrotMarketHomeViewController: CLLocationManagerDelegate {
}
ViewControllerをロケーションマネージャのエージェントとして委任することで、受信した領域情報に次のことができます.[注意]:
Apple Developer Document | Core Location
Apple Developer Document | CLLocationManager
Apple Developer Document | Adding Location Services to Your App
Reference
この問題について([iOS] Framework - Core Location), 我々は、より多くの情報をここで見つけました https://velog.io/@inwoodev/iOS-Framework-Core-Locationテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol