2010-09-07 37 views
0

我有一个iPhone应用程序,它正在使用Soap Web服务。当我发送一个URLrequest时,应用程序变慢。我的应用程序是一个TabBarApplication。从开始调用Web服务来解析接收到的数据,我无法选择UITabbarcontroller中的Tabs。如何加速我的iPhone应用程序Tabbarcontroller即使在应用程序从Web服务接收到一些数据时也可以选择? NSThread的使用是一个很好的解决方案吗?消费Web服务时加速iPhone应用程序

回答

4

无论何时访问网络,都可以通过使用单独的线程或使用异步的NSURLConnection实例异步执行。这样,用户界面仍然保持响应。

这不是免费的:所有的视图都需要管理状态,因为它们一开始处于“数据加载”状态(当它们提交请求时),然后当数据的最后一段数据已经到达,他们进入“数据加载”状态,需要刷新。如果reqeust失败,他们进入“加载失败”状态并显示“重试”按钮(或类似的东西)。

我写了一个应用程序,它从远程Web服务获取所有数据。它感觉非常快速且响应迅速,可能是由于以下事实:

  • 它以异步方式加载所有数据(使用NSURLConnection实例)。
  • 它使用JSON而不是SOAP,因为它更加紧凑和更快速解析。
  • 它使用HTTP连接压缩。
  • 它只在每个请求上加载尽可能少的数据。