如何从appdelegate中的dispatch main async返回didFinishLaunchingWithOptions中的Bool?

时间:2017-07-11 11:08:14

标签: ios swift

我还是iOS新手,我在这里遇到了问题。我需要从api获取数据,当我得到它时,我想正确启动我的应用程序。所以,我在appdelegate中有这个代码

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

    DispatchQueue.main.async {
        let handler = APIHandler()

        hand.getData(onSuccess: { (response) in
            return true // CANT RETURN
        }, onError: { (err) in
            //SOMETHING ELSE HERE
        })
    }
     return true // CAN RETURN
}

我只是想知道我怎么能等到handler完成并返回true以便我可以启动应用程序。提前谢谢!

更新:谢谢大家。我决定在我的启动画面中做所有事情。以前甚至没想过:D

2 个答案:

答案 0 :(得分:1)

这不是解决这个问题的正确方法。使用初始视图控制器来处理网络操作,显示e。 G。数据加载时的活动指示器,然后进入处理程序块中的下一个屏幕。

答案 1 :(得分:1)

你不能这样做。而是使用一个新的viewController,它显示一个进度条或任何其他加载器(如果它显示启动画面的视图,则更好)。完成数据提取后,转到第一个viewController