Ссылка ViewController не поддерживается - PullRequest
0 голосов
/ 02 мая 2019

У меня есть класс обслуживания 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 переменной экземпляра и назначить ее в методе вместо этого, что приводит к той же ошибке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...