在guard语句中显示一个ViewController swift

Jos*_*osh 5 guard ios presentviewcontroller swift

我正在尝试present使用视图控制器,以防状态(一个Int?)为零,如下所示:

    guard let statusCode = status else {
        DispatchQueue.main.async() {
            let initViewController = self.storyboard!.instantiateViewController(withIdentifier: "SignInViewController")
            self.present(initViewController, animated: false, completion: nil)
        }
            return
    }
Run Code Online (Sandbox Code Playgroud)

我想知道这是否是最佳实践,因为在呈现视图控制器后返回并没有多大意义,但它在guard语句中是必需的,因为guard语句不能落空。

Man*_*nsi 4

回答您有关guard声明和return关键字的问题

func yourFunc() {
    guard let statusCode = status else {
      return DispatchQueue.main.async() { [weak self] _ in
        let initViewController = self?.storyboard!.instantiateViewController(withIdentifier: "SignInViewController")
        self?.present(initViewController!, animated: false, completion: nil)
    }
  }
}
Run Code Online (Sandbox Code Playgroud)