Я работаю над приложением Иос, где в моем appDelegate
у меня есть:Подождите, пока асинхронный вызов апи не завершен - Swift/IOS
func application(application: UIApplication!, didFinishLaunchingWithOptions launchOptions: NSDictionary!) -> Bool {
self.api.signInWithToken(emailstring, token: authtokenstring) {
(object: AnyObject?, error:String?) in
if(object != nil){
self.user = object as? User
// go straight to the home view if auth succeeded
var rootViewController = self.window!.rootViewController as UINavigationController
let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
var homeViewController = mainStoryboard.instantiateViewControllerWithIdentifier("HomeViewController") as HomeViewControllerenter
// code here
rootViewController.pushViewController(homeViewController, animated: true)
}
}
return true
}
api.signInWithToken
асинхронный вызов, сделанный с Alamofire, и я бы как дождаться его завершения, прежде чем вернуть true в конце приложения func.
Swift не имеет таких функциональных возможностей. Вы хотите настроить свой контроллер окон и корневого представления в теле 'didFinishLaunching', возможно, с графикой загрузки, а затем перейти к новому контроллеру представления в обработчике завершения входа API. –
didFinishLaunching устарел, но это звучит неплохо. –