Objective c 带有MapView的TabBar应用程序(我必须在哪里下载信息以及如何在MapView中显示该信息?)

Objective c 带有MapView的TabBar应用程序(我必须在哪里下载信息以及如何在MapView中显示该信息?),objective-c,uitabbarcontroller,nsurlconnection,Objective C,Uitabbarcontroller,Nsurlconnection,我的应用程序包含一个带有MapView和TableView等控制器的TabBarController。视图中显示的信息必须通过NSURLConnection下载,而且需要很长时间。我怀疑: 我将有一个类NSObject,它将下载数据并解析它。但是带注释的地图和表格都需要显示这些信息 我必须在哪里下载数据?除其他问题外,地图在下载数据之前出现,因此如何使用注释更新地图? 更新: 好吧,也许我需要更好地解释。 我的应用程序使用反向用户位置下载信息,因此在AppDelegate.m中我使用locati

我的应用程序包含一个带有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,我需要为它们下载的信息


非常感谢

好的,我会根据我的理解回答你的问题:

我假设您正在使用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

我希望上述代码符合您的要求

好的,如果下载完成时我是你,我会将它们写入一个数组,该数组是appdelegate的属性,然后在appdelegate或第一个视图控制器中初始化我的映射。。希望这能解决你的问题。。