0

私にできること:100のlatおよびlngポイントのsqlite DBを取得し、それらのピンをマップにドロップします。素晴らしく見える!

私がやりたいのは、地図を描く前に、自分の位置を取得することです。しかし、それは次のようです:

  • (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation

(void)viewDidLoadの実行後に常に起動します。私がそれを挿入するところは問題ではありません。

私がする必要があるのは、スプラッシュスクリーンを用意し、場所を取得するまでそこで停止し、そのlatとlngを使用して、私の数マイル以内にある場所のsqliteDBを検索することです。

ここに私の痕跡:

-[RootViewControllerinitWithTabBar]と入力します

-[RootViewControllerviewDidLoad]と入力します

-[RootViewController locationManager:didUpdateToLocation:fromLocation:]と入力します

そして、これが私が本当に欲しいものです:

-[RootViewControllerinitWithTabBar]と入力します

-[RootViewController locationManager:didUpdateToLocation:fromLocation:]と入力します

-[RootViewControllerviewDidLoad]と入力します

今私は(タブバーコントローラーを使って)考えていますが、どういうわけかこれをアプリのデリゲートにプッシュバックする必要がありますか?場所を取得するまでアプリ全体をフリーズしますか?それが私の最新の考えです。

ヒント、リード、スニペットをありがとう... !!! 私は何日も探していましたが、まったく運がありません。

ありがとう!!!!

4

1 に答える 1

1

アプリを「フリーズ」したくないことは間違いありません。また、アプリデリゲートのapplicationDidFinishLaunching:メソッドでできる限り少ない作業を行いたいことは間違いありません。私がお勧めするもの:

  • 2つのビューがあります。1つはマップを含む「実際の」ビューであり、(おそらく)何らかのビューコントローラーによって制御されます。もう1つは、ユーザーへのメッセージと、などを含む単純な「待機中」ビューUIActivityIndicatorViewです。
  • アプリが起動したら、待機中のビューをアプリのウィンドウに読み込んで表示し、ロケーションマネージャーを起動して、ユーザーの現在の場所を見つけます。
  • 十分な位置情報を取得したら、実際のビューをロードしてウィンドウに追加し、待機中のビューを削除します。(たぶん、素敵なクロスフェードアニメーションか何かで。)

hidden両方のビューを追加して、適切なタイミングでそれらのプロパティを反転することもできます。しかし、重要なのは、コアロケーションの本質的に非同期の性質と戦おうとせずに、ユーザーに何かを見てもらうことです。

于 2009-10-25T16:24:37.987 に答える