У меня есть класс обслуживания AuthManager, в котором есть метод, как показано ниже:
public func logoutAuth(from viewController: UIViewController, completion:((_ result: Bool) -> Void)? = nil) {
let logoutString = "\(self.oAuthBaseServerURL)/logout.jsp"
// Present the Sign Off ViewController
if let logoutURL = URL(string: logoutString) {
let logoutController = SFSafariViewController(url: logoutURL)
let logoutDelegate = SFSafariViewDelegate(completion: completion)
logoutController.delegate = logoutDelegate
viewController.present(logoutController, animated: true, completion: nil)
}
}
Я вызываю эту службу из ее экземпляра (синглтона в глобальном состоянии) в моем контроллере вида следующим образом:
GlobalState.AUTHMANAGER().logoutAuth(from: self, completion: self.completeLogout)
Однако я получаю эту ошибку:
[Warning] Attempting to load the view of a view controller while it is deallocating is not allowed and may result in undefined behavior (<SFSafariViewController: 0x7ff9b1060800>)
Я не уверен, почему это слишком рано. Я попытался сделать SFSafariViewController переменной экземпляра и назначить ее в методе вместо этого, что приводит к той же ошибке.