在主线程上解析查询

时间:2014-10-24 03:21:08

标签: ios multithreading parse-platform

我的iOS应用程序非常依赖服务器端数据,只是为了启动它,我需要来自Parse的一些信息才能在app appate上完成工作...问题是我正在制作这个查询主线程,因为否则我会使用一个块或一个队列,并在应用程序启动后立即显示启动图像,然后查询开始,屏幕变为空白,然后查询到达,应用程序屏幕刷新并准备好了,但这对用户体验来说非常奇怪,我不希望它发生..

通过主线程上的查询,启动图像一直保持到数据到达,看起来好多了,加载时间大约是2-3秒......

感觉这是一种不好的做法,但是......

有任何建议吗?

此致

MiguelRojasCortés

2 个答案:

答案 0 :(得分:4)

在应用启动时不要阻止主线程。如果网络请求不够快,看门狗将终止您的应用,您的用户将为您提供1星评价。

只需使用尽可能多的信息显示您的用户界面,并显示一些可视指示,表明正在加载更多数据。然后在数据到达时更新视图。

还要记住处理用户启动应用程序而没有连接的情况。用户应该获得适当的错误和重试选项。

答案 1 :(得分:2)

你只需要在这里做更多的工作

  1. 为启动屏幕创建单独的nib /视图控制器,而不是使用默认的iOS
  2. 加载启动视图控制器后,启动请求,暂时不进行任何转换。也许在那里展示某种装载指示器。
  3. 当所有数据都到达时,请转换到第一个屏幕(顺利或突然褪色,IDK)。
  4. 在这种情况下对主线程进行查询可以在90%的时间内工作,但是其他10%,例如当网络不稳定时,这不是一个很好的体验。该应用程序将挂在那里,你没有机会处理返回的错误,因为主线程被阻止了。