Swift 3:在 ViewDidLoad 中从服务器获取信息,当单击按钮时,等待服务器的信息响应
Posted
技术标签:
【中文标题】Swift 3:在 ViewDidLoad 中从服务器获取信息,当单击按钮时,等待服务器的信息响应【英文标题】:Swift 3: get information from server in ViewDidLoad and when click a button, wait for information response from server 【发布时间】:2017-03-02 03:46:27 【问题描述】:在我的应用程序中,我想在 ViewDidLoad 中调用一个异步函数(使用 alamofire),并且用户在按下按钮之前仍然可以与视图交互,如果异步函数不是,我希望应用程序显示进度 hud完成或如果完成则转到下一个视图。我不想在单击按钮时调用异步函数,因为有时可能需要等待更长的时间,而我在 ViewDidLoad 处调用异步函数 我该怎么做?
【问题讨论】:
【参考方案1】:编辑 - 使用枚举来保存视图控制器状态
enum State
case Loading
case Ready
case ShowNext
var state: State
func viewDidLoad()
state = .Loading
makeAsyncCall() (finished) in
if state == .ShowNext
showNext()
else
state = .Ready
func buttonTapped()
if state == .Ready
showNext()
else
state = .ShowNext
【讨论】:
我也有这个想法,但我想要更优雅的方式来做到这一点以上是关于Swift 3:在 ViewDidLoad 中从服务器获取信息,当单击按钮时,等待服务器的信息响应的主要内容,如果未能解决你的问题,请参考以下文章
在 viewDidLoad 中从 JSON 加载数据不起作用
在 viewDidLoad Swift 3 中循环播放音频音乐的问题
如何在 Swift beta 3 中从 UIImagePickerControllerDelegate 获取 UIImage?