我的Mac应用程序连接到远程数据库,大约需要10秒钟来连接和提取数据。由于框架初始化和网络延迟等原因,此时间不能缩短。
我希望从最初的应用启动时间到应用程序准备好并完成它的时候放置一个闪屏。
我尝试了applicationWillFinishLaunching:(NSNotification *)notification
方法,但是在应用程序启动之前它不会显示启动画面,这是有意义的,因为AppDelegate似乎是最后创建的对象,App控制器完全初始化了整个应用程序“将完成启动”,这是延迟的地方。
如果停靠区块开始弹跳,有没有办法调用此窗口?
我知道我会被击落以进行优化,但不能采取进一步措施来加快这一进程。
答案 0 :(得分:3)
也许您可以将您耗时的任务分配给后台线程与GCD异步,以便应用代表可以继续:
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul);
dispatch_async(queue, ^{
// time consuming task
});
<强>更新强>
你可以调用dispatch_get_main_queue()在主线程上执行繁重的任务,而不是后台线程,如果它们涉及对UI的更改。