2013-03-25 40 views
0

我在建立一个iOS应用(6.0以上版本)的过程中,流程是这样的:API过程阻断地图和互动

  1. 触摸应用程序图标
  2. 应用程序开始加载,带来向上第一视图(地图视图)
  3. 一旦应用程序有位置,通过http请求
  4. 使用该数据来填写一些地图注释得到它从一个API信息

我发现在2时,应用程序完全停止响应,直到4月底。它感觉像一个破碎的体验,并像应用程序已冻结,直到它完成添加注释。

我该如何解决这种阻塞行为?我怀疑这个答案与我如何编写我的任务有关,但我不知道在哪里寻找,或者实际上是我应该解决的问题。

+1

你可能做在主线程联网。这是一个禁忌。使用像AFNetworking这样的框架来进行异步回调,或者使用NSURLConnection的'+ sendAsynchronousRequest:'方法。 – 2013-03-25 16:19:24

+0

你是绝对正确的;我觉得很愚蠢。为什么他们甚至有一个同步URL请求选项? – dclowd9901 2013-03-25 16:30:33

+1

这是一种支持方法。过去很难仅仅获取NSURLConnection返回的数据,所以他们添加了这样一个简单的方法。 – 2013-03-25 16:32:34

回答

1

您应该使用异步请求从服务器获取数据,否则应用程序将等待请求完成。

,你可以使用NSURLConnection的

以下类方法

connectionWithRequest:delegate:

sendAsynchronousRequest:queue:completionHandler:

,或者使用一个框架像AFNetworking

+1

如果你可以充实你的答案(可能使用实际的选择器名称),我很乐意为你提供绿色检查。 – dclowd9901 2013-03-25 16:31:21

+0

我甚至添加了链接;) – peko 2013-03-25 16:43:16