Skip to content

Instantly share code, notes, and snippets.

@MeGaPk
Created February 20, 2019 22:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save MeGaPk/4cf59b95d91e493b33e1385acf4576b9 to your computer and use it in GitHub Desktop.
Save MeGaPk/4cf59b95d91e493b33e1385acf4576b9 to your computer and use it in GitHub Desktop.
class Toster {
var callback: (() -> ())?
init(){
print("Toster -> init")
}
func execute() {
self.callback?()
}
func execute(_ closure: () -> ()) {
closure()
}
deinit {
print("Toster -> deinit")
}
}
class Runner {
public weak var toster: Toster?
init(){
print("Runner -> init")
}
func run() {
print("Runner -> setup callback to toster: \(self.toster)")
self.toster?.callback = {
self.kaboom()
}
// self.toster?.callback = {
// [weak self] in
// self?.kaboom()
// }
self.toster?.execute()
// self.toster?.execute {
// self.kaboom()
// }
print("Runner -> Runned")
}
func kaboom() {
print("Runner -> Kaboom!")
}
deinit {
print("Runner -> deinit")
}
}
do {
let toster: Toster = Toster()
let runner: Runner = Runner()
runner.toster = toster
runner.run()
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment