iphone - xcode 地理位置 : Getting coordinates before view is loaded

标签 iphone objective-c ios xcode geolocation

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

我现在面临的问题是 View 先加载,然后才获取坐标。

我如何首先获取坐标,以便我可以将它们发送到我的网络服务器进行处理并发回数据,以便我可以显示在我的 View 中?

谢谢!

最佳答案

如果您的 View Controller 在呈现之前确实需要位置信息,它可以让呈现 View Controller 在转换之前执行位置服务。如果没有呈现 View Controller (即需要位置的 View Controller 当前是 Root View Controller ),您可以引入一个新的 Root View Controller ,它将在转换到主视图 Controller 之前执行位置服务。

这个呈现 View Controller 应该(根据位置感知编程指南)应该创建 CLLocationManager,启动位置服务,并在收到 的适当的 didUpdateLocations 后CLLocationManagerDelegate,然后它可以停止位置服务并转换到主视图 Controller 。也许这个中间 View Controller 还应该在执行位置服务时显示一些漂亮的“请稍候”屏幕或带有 UIActivityIndi​​catorViewdefault.png 图像的副本。

但实际上,您不一定需要引入这个中间 View Controller 。你可以用你的主视图 Controller 来完成这一切。您可以使用异步事件驱动的编码模式。因此,您可以将 Web 服务的性能推迟到位置服务得到满足之后,而不是在呈现 View 之前要求位置。例如,this simple test project调用位置服务,并在完成后向天气服务提交 Web 请求,并解析 JSON 响应。不需要中间 View Controller 。

但请注意,Apple 不赞成(即可能会拒绝)只有在定位服务成功时才能运行的应用程序,因此您可能需要考虑如果您的应用程序根本无法使用定位服务,它应该做什么.您必须优雅地处理这种情况,也许使用最后已知的位置。

关于iphone - xcode 地理位置 : Getting coordinates before view is loaded,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13466299/

相关文章:

ios - 请帮助我进行基于 block 的回调

ios - 如何在自定义键盘中输入自定义字体作为输入

ios - 如何增加 .csv 中的行数

iphone - 如何在选择表格 View 部分时设置复选框图像?

ios - UIWebView 显示 URL 而不是网页

iphone - 我在 UITableView header 中有一个 UIImageView。我怎样才能随时获得该 UIImageView 的确切 y/x 坐标?

iphone - iPhone 可本地化字符串的区域设置代码

iphone - 使用 SDURLCache(NSURLCache 的子类)时的内存泄漏

ios - UILabel 的文本未显示在 View 中

ios - 在 UISegmentedControl 中换行文本 (iOS 9+)