我试图在我的iOS应用启动时能够在后台运行代码。我必须调用一些API,可能需要几秒钟来获取应用程序第一页的信息,我想让它看起来无缝,所以我希望在启动屏幕打开时进行所有API加载。
我该如何做到这一点?
谢谢!
答案 0 :(得分:3)
如果你在项目常规属性中设置了launchImage,那么在调用主viewController之前你在appDelegate didFinishLaunchingWithOptions
方法中拥有的任何东西都将在“background”中完成,同时看到launchImage或splashScreen
你可以做的另一件事是让appDelegate加载一个初始的viewController,它只有一个占据整个屏幕的UIImageView,或者只是主UIView的背景图像。在此视图控制器中,您可以进行所需的任何计算,并保存所需的数据,并在完成所有这些操作后,您可以加载要加载的主视图控制器。 一个小的伪代码可能是这样的:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
//do calculations
dispatch_sync(dispatch_get_main_queue(), ^{
//load main view controller
});
});