同步调用willFinishLaunchingWithOptions(AppDelegate)

时间:2014-01-29 17:58:04

标签: ios splash-screen appdelegate

我会在应用程序启动之前进行远程调用(在AppDelegate中,显示启动画面时)。然后我会根据网址响应选择加载哪个视图控制器。 在AppDelegate上这样做是对的吗?或者我需要一种不同的方法?

2 个答案:

答案 0 :(得分:3)

我认为最好的方法是创建一个ViewController来做出这个选择。加载此VC后,您可以在UI中显示您的应用实际正在工作并等待网络响应时进行远程调用 - 最佳方法可能是显示带有UIActivityIndi​​catorView旋转的消息。

获得响应后,您需要加载VC。您还应该处理错误 - 如果网络请求失败,您将显示什么?您是否显示错误消息?

答案 1 :(得分:2)

您不应该从willFinishLaunchingWithOptions进行任何同步网络调用。如果您花费超过几秒钟的时间返回该方法或(didFinishLaunchingWithOptions,或系统在启动您的应用程序的过程中调用的其他应用程序委托方法),则跳板将终止您的应用程序无响应。

@Tanzolone有正确的想法。让您的应用程序显示一个显示应用程序UI的视图控制器,然后调用网络请求并根据响应决定要切换到的第二个屏幕。