我还是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
答案 0 :(得分:1)
这不是解决这个问题的正确方法。使用初始视图控制器来处理网络操作,显示e。 G。数据加载时的活动指示器,然后进入处理程序块中的下一个屏幕。
答案 1 :(得分:1)
你不能这样做。而是使用一个新的viewController,它显示一个进度条或任何其他加载器(如果它显示启动画面的视图,则更好)。完成数据提取后,转到第一个viewController