我正在尝试获取手机的当前位置,然后将坐标发送到我的网络服务器以处理数据,以便将一些结果返回到我的应用中。
我现在面临的问题是视图首先加载,然后只获取坐标。
如何首先获取坐标,以便我可以将它们发送到我的网络服务器来处理和发回数据,以便我可以在我的视图中显示?
谢谢!
答案 0 :(得分:1)
如果视图控制器在呈现之前确实需要位置信息,则可以让呈现视图控制器在转换之前执行位置服务。如果没有呈现视图控制器(即需要该位置的视图控制器当前是根视图控制器),则可以引入新的根视图控制器,该控制器将在转换到主视图控制器之前执行位置服务。
此呈现视图控制器应该(根据位置感知编程指南)创建CLLocationManager
,启动位置服务,并在收到didUpdateLocations
的相应CLLocationManagerDelegate
后,它可以停止位置服务并转换到主视图控制器。也许这个中间视图控制器还应该在执行位置服务时显示一些漂亮的“请稍候”屏幕或default.png
图像的副本UIActivityIndicatorView
。
但实际上,您不一定需要引入此中间视图控制器。您可以使用主视图控制器完成所有操作。您可以使用异步事件驱动的编码模式。因此,在呈现视图之前不需要位置,您可以推迟Web服务的性能,直到满足位置服务之后。例如,this simple test project调用位置服务,完成后,向气象服务提交Web请求,并解析JSON响应。不需要中间视图控制器。
但请注意,苹果公司不赞成(也可能拒绝)仅在位置服务成功时才有效的应用程序,因此您可能想要考虑一下如果应用程序根本无法使用位置服务应该做什么。您必须优雅地处理该场景,可能使用上一个已知位置。
答案 1 :(得分:0)
那么为什么你不能在视图之前找到当前位置,以便在推送到该地图位置时我们可以传递这些坐标并调用web服务以便我们可以显示数据,我想我们会得到你想要的