Ios 主线程上的解析查询

Ios 主线程上的解析查询,ios,multithreading,parse-platform,Ios,Multithreading,Parse Platform,我的iOS应用程序严重依赖服务器端数据,为了启动它,我需要一些来自解析的信息来完成应用程序代理的工作。。。问题是我在主线程上进行此查询,因为否则我将使用块或队列,在应用程序启动后,立即显示启动图像,然后查询开始,屏幕变为空白,然后查询到达,应用程序屏幕刷新并准备就绪,但是对于用户体验来说,这看起来很奇怪,我不希望它发生 在主线程上进行查询后,启动映像将一直保留到数据到达为止,并且看起来更好,加载时间约为2-3秒 这感觉很糟糕,但是 有什么建议吗 问候, Miguel Rojas Cortés在应

我的iOS应用程序严重依赖服务器端数据,为了启动它,我需要一些来自解析的信息来完成应用程序代理的工作。。。问题是我在主线程上进行此查询,因为否则我将使用块或队列,在应用程序启动后,立即显示启动图像,然后查询开始,屏幕变为空白,然后查询到达,应用程序屏幕刷新并准备就绪,但是对于用户体验来说,这看起来很奇怪,我不希望它发生

在主线程上进行查询后,启动映像将一直保留到数据到达为止,并且看起来更好,加载时间约为2-3秒

这感觉很糟糕,但是

有什么建议吗

问候,


Miguel Rojas Cortés

在应用程序启动时不要阻止主线程。如果网络请求不够快,看门狗会终止你的应用程序,你的用户会给你一星级的评价

只需在UI中显示尽可能多的信息,并显示更多数据正在加载的视觉指示。然后在数据到达时更新视图


还请记住处理用户启动应用程序时没有连接的情况。用户应获得相应的错误和重试选项

应用程序启动时不要阻止主线程。如果网络请求不够快,看门狗会终止你的应用程序,你的用户会给你一星级的评价

只需在UI中显示尽可能多的信息,并显示更多数据正在加载的视觉指示。然后在数据到达时更新视图


还请记住处理用户启动应用程序时没有连接的情况。用户应获得相应的错误和重试选项

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

  • 为启动屏幕创建一个单独的nib/视图控制器,而不是使用默认的iOS控制器
  • 加载启动视图控制器后,启动请求,暂时不进行任何转换。可能会显示一些装载指示器
  • 当所有数据到达后,转换到第一个屏幕(平滑淡出或突然淡出,IDK)

  • 在这种情况下,在主线程上执行查询可能有90%的时间是有效的,但其他10%的时间是有效的,例如,当网络不稳定时,这不是一个好的体验。应用程序将挂在那里,您没有机会处理返回的错误,因为主线程被阻塞。

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

  • 为启动屏幕创建一个单独的nib/视图控制器,而不是使用默认的iOS控制器
  • 加载启动视图控制器后,启动请求,暂时不进行任何转换。可能会显示一些装载指示器
  • 当所有数据到达后,转换到第一个屏幕(平滑淡出或突然淡出,IDK)

  • 在这种情况下,在主线程上执行查询可能有90%的时间是有效的,但其他10%的时间是有效的,例如,当网络不稳定时,这不是一个好的体验。应用程序将挂在那里,你没有机会处理返回的错误,因为主线程已被阻止。

    永远不要在主线程上执行网络操作,如果你的设备处于非常糟糕的网络环境中,主线程将被阻止很长时间。我同意,你应该显示自己的“加载/启动”启动图像作为应用程序的初始视图,然后在网络任务完成后过渡到实际屏幕。切勿在主线程上执行网络操作。如果您的设备处于非常糟糕的网络环境中,主线程将阻塞很长时间。我同意,您应该显示自己的“加载/启动”启动图像作为应用程序的初始视图,然后在网络任务完成后过渡到实际屏幕