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 回答