位置の決定には時間がかかります。ロケーションマネージャーはいつどこで開始する必要がありますか?
現在、結果ビュー(場所が必要)が読み込まれる前に、1つのビューで場所の更新を開始しています。ユーザーが高速にタップすると、0.0座標が得られます。
適切なタイミングを得るにはstartUpdatingLocation
、結果ビューの前に3つのビューを呼び出す必要があります。ここでの問題は、この3つのビューコントローラーを介して値を渡さなければならないことです。
次のことは、別のビュー(上記のビューではない)でも場所が必要なことです。独自のロケーションリスナークラスを作成しようと思いました。しかし、このクラスはいつインスタンス化され、座標(経度、緯度)が通過するのでしょうか。ロケーションリスナーを作成したクラスのみが結果を返すため、プロトコルは役に立ちません。
私は少し読んで、次の可能な解決策を思いつきます:
1)通知センターの使用(このソリューションを参照)
2)ロケーションマネージャーのプロパティをAppDelegate
1)で、結果を必要とするビューが以前に作成されなかったという問題が発生します。
2)の実装はどのようになりますか?アプリデリゲートでロケーションマネージャーのインスタンスを作成してから、緯度/経度などのいくつかのivarにアクセスしAppDelegate
ます。ここで説明するソリューションを採用する場合は、CLLocationManagerDelegate
毎回実装する必要があります。それを行うためのクラスが1つある方が良いのではないでしょうか。
おそらくあなたは3番目の解決策を持っていますか?