0

私のアプリは、MapViewとTableViewなどのコントローラーを備えたTabBarControllerで構成されています。ビューに表示される情報は、NSURLConnectionを介してダウンロードする必要があり、時間がかかります。私は疑問を持っています:

データをダウンロードしてパーサーするクラス(NSObject)があります。ただし、マップ(注釈付き)とテーブルの両方にこの情報を表示する必要があります。

  • データはどこでダウンロードする必要がありますか?他の問題の合間に、データをダウンロードする前に地図が表示されるので、注釈を使用して地図を更新するにはどうすればよいですか?

更新しました:

わかりました、多分私はもっとよく説明する必要があります。私のアプリは、ユーザーの逆の場所を使用して情報をダウンロードするため、AppDelegate.mではlocationManagerを使用します。locationManagerDelegateは、Downloader.mに準拠しています(NSURLConnectionを介して情報を取得します)。これまでのところ、mapViewは画面に表示されますが、もちろん空です。情報がないため、annotationsプロパティは空です。ダウンローダーが情報のダウンロードを完了したら、マップに注釈を設定する必要があります。どうやって。つまり、Downloader.mにmapViewControllerのインスタンスがありません。私が作成した場所はappDelegateでした。私の大きな問題は、タスク(appDelegate.m、Downloader.m、mapViewController.m)を実行する必要がある場所です。また、mapViewとtableViewの両方を使用するため、両方にダウンロードされたという情報が必要です。そのうちの。

どうもありがとう

4

1 に答える 1

0

わかりました、私が理解していることに従ってあなたの質問に答えようとします:)

NSURLConnection のデリゲート メソッドを使用していて、最終的なメソッドは次のとおりであると仮定します。

- (void)connectionDidFinishLoading:(NSURLConnection *)connection

このメソッドは、すべてのデータがサーバーから取得されたことを意味するため、ここですべてのデータを処理します。

注釈に関する最終的な回答については、次のようなコードを実装するよりも NSURLConnection でデータを取得するためです。

MKCoordinateSpan coordinateSpan = MKCoordinateSpanMake(0.01, 0.01);
MKCoordinateRegion coordinateRegion = MKCoordinateRegionMake(centerPoint, coordinateSpan);

[noteMap setRegion:coordinateRegion];
[noteMap regionThatFits:coordinateRegion]; //this is the center and region of your map

MyLocation *annotation = [[MyLocation alloc] initWithName:"annotation-name" address:"your-subtitle" coordinate:cordPoint] ; //this is an annotation class that i implemented
["your-map-view" addAnnotation:annotation]; //this is the method for adding annotation

上記のコードが必要なものに適合することを願っています..

于 2012-05-03T14:06:00.460 に答える