Created
September 27, 2019 05:02
-
-
Save noppefoxwolf/80c6f07c28719e0e071c4ba34e7e899a to your computer and use it in GitHub Desktop.
Generambaのswift_viperテンプレートで起こりうるクラッシュ
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class RootViewController: UIViewController { | |
override func viewDidLoad() { | |
super.viewDidLoad() | |
view.backgroundColor = .red | |
} | |
override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) { | |
let vc = ViewController.make() | |
present(vc, animated: true, completion: nil) | |
} | |
} | |
class ViewController: UIViewController { | |
var output: Presenter! | |
static func make() -> ViewController { | |
let vc = ViewController() | |
let interactor = Interactor() | |
let presenter = Presenter() | |
presenter.interactor = interactor | |
presenter.view = vc | |
interactor.output = presenter | |
vc.output = presenter | |
return vc | |
} | |
override func viewDidLoad() { | |
super.viewDidLoad() | |
view.backgroundColor = .blue | |
output.viewDidLoad() | |
} | |
func changeBackgroundColor() { | |
view.backgroundColor = .green | |
} | |
override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) { | |
dismiss(animated: true, completion: nil) | |
} | |
} | |
class Presenter { | |
weak var view: ViewController! | |
var interactor: Interactor! | |
func viewDidLoad() { | |
interactor.request() | |
} | |
func didReceivedResponse() { | |
view.changeBackgroundColor() | |
} | |
} | |
class Interactor { | |
weak var output: Presenter! | |
func request() { | |
DispatchQueue.main.asyncAfter(deadline: .now() + 3.0) { [weak self] in | |
self?.output.didReceivedResponse() | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment