Я пытаюсь понять, как подойти к этому в Swift.
Скажем, например, у меня есть следующий UIViewController
class ViewController: UIViewController {
let logoutButton: UIButton = {
let button = UIButton()
button.setTitle("Logout", for: .normal)
button.setTitleColor(UIColor.black, for: .normal)
button.titleLabel?.font = UIFont.boldSystemFont(ofSize: 24)
button.addTarget(self, action: #selector(onPressLogout), for: .touchUpInside)
button.translatesAutoresizingMaskIntoConstraints = false
return button
}()
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .white
navigationItem.title = "Logged in"
view.addSubview(logoutButton)
NSLayoutConstraint.activate([
logoutButton.centerXAnchor.constraint(equalTo: view.centerXAnchor),
logoutButton.centerYAnchor.constraint(equalTo: view.centerYAnchor)
])
}
@objc fileprivate func onPressLogout() {
AuthService.logOut()
}
}
и AuthService
final class AuthService {
static func logOut() -> Void {
print("Logout Pressed")
}
}
То, что я хотел бы сделать, это позвонить logOut
на мой AuthService
, когда нажата onPressLogout
.
Я пытаюсь понять, как мне получить доступ к logOut
в правильном и лучшем виде.Возможный путь.
Например, как у меня сейчас?Статический метод в классе?
Стоит ли вместо этого создать его экземпляр, например
lazy var auth = AuthService()
, а затем вызвать выход из системы через auth.logOut()
без ключевого слова static
?
Я не совсем понимаю, каков наилучший подход к созданию этих «вспомогательных» классов.