оператор Guard не вызывается в правильном порядке
в этом случае
class ModalManager {
static var parentController: UIViewController?
static weak var initialController: UIViewController?
class func present(_ controller: UIViewController) {
guard let parent = parentController else {
return
}
guard initialController == nil else {
fatalError("initialController not nil")
}
initialController = controller
parent.present(controller, animated: false)
}
}
в некоторых случаях линияinitialController = controller
выполняется перед сторожем с fatalError, а затем приложение аварийно завершает работуguard initialController == nil
.
почему бы его не назвать по порядку написания в некоторых случаях? фрагмент о том, как называется func:
ModalManager.parentController = parentController
ModalManager.present(modalVC)