xcode地理位置:在加载视图之前获取坐标



我正在尝试获取手机的当前位置,然后将坐标发送到我的Web服务器以处理数据,并将一些结果返回到我的应用程序中。

我现在面临的问题是,视图首先加载,然后只有它才能获得坐标。

如何首先获取坐标,以便将其发送到Web服务器进行处理并发回数据,以便在视图中显示?

谢谢!

如果您的视图控制器在显示位置信息之前确实需要位置信息,则可以让显示视图控制器在转换之前执行位置服务。如果没有呈现视图控制器(即,需要位置的视图控制器当前是根视图控制器),则可以引入一个新的根视图控制器,该控制器将在转换为主视图控制器之前执行位置服务。

该呈现视图控制器应当(根据位置感知编程指南)创建CLLocationManager,发起位置服务,并且在接收到CLLocationManagerDelegate的适当didUpdateLocations之后,它可以停止位置服务并转换到主视图控制器。也许这个中间视图控制器还应该在执行定位服务时显示一些漂亮的"请等待"屏幕或带有UIActivityIndicatorViewdefault.png图像的副本。

不过,在实践中,您不一定需要引入这个中间视图控制器。您可以使用主视图控制器完成所有操作。您可以使用异步事件驱动的编码模式。因此,您可以将web服务的性能推迟到满足位置服务之后,而不是在显示视图之前要求位置。例如,这个简单的测试项目调用定位服务,完成后,向天气服务提交web请求,并解析JSON响应。不需要中间视图控制器。

不过,请注意,苹果不赞成(也就是说,很可能会拒绝)只有在定位服务成功的情况下才能工作的应用程序,所以你可能需要考虑一下,如果你的应用程序根本无法使用定位服务,该怎么办。您必须优雅地处理这种情况,也许可以使用最后一个已知的位置。

那你为什么不能在before视图中找到当前位置,这样在推送到地图位置时,我们可以传递这些坐标并调用web服务,这样我们就可以显示数据了,我想我们会得到你想要的

最新更新