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 3 中从 JSON 解析数组文字

在 Swift 3 中从数组中播放随机声音

如何在 Swift beta 3 中从 UIImagePickerControllerDelegate 获取 UIImage?

Swift 3 - 在 Safari 中从 JSON 打开 URL