override func viewWillDisappear(animated: Bool) {
var done = false
updateCurrentUserInDB(self.currentUser, onCompleted: { done = true })
while !done { }
}
有什么正确的方法可以做到这一点吗?
最佳答案
首先为什么你的更新需要这么长时间?
一个好的方法是在用户进行更改时不断更新数据。如果您有“取消”按钮,则需要实现一些操作来回滚。
无论如何,如果您无法更快地进行保存过程,我建议将用户对象转发到主视图,在那里更新用户(同时显示进度指示器)并在完成 block 内重新加载主视图。
编辑:更好的方法是将数据传递回主视图(见上文),使用该数据更新主视图并在后台与后端同步。这样,用户不必等到同步完成+您不必向后端发出单独的请求,请求您刚刚发送给它的相同数据。
关于swift - 如何在viewDidappear之前等待函数结束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35936829/