diff options
author | Nicholas Tay <nick@windblume.net> | 2022-07-17 01:56:43 +1000 |
---|---|---|
committer | Nicholas Tay <nick@windblume.net> | 2022-07-17 01:56:43 +1000 |
commit | daee1f1b5c739f42ba54a1ebbb9655f5034e315f (patch) | |
tree | dfeb6550b4c97e16c81fa589c8d113ffef599d92 /foray | |
parent | 13f60899394f3bda4b77e6d5dc71f418ad0e2975 (diff) | |
download | forayios-daee1f1b5c739f42ba54a1ebbb9655f5034e315f.tar.gz forayios-daee1f1b5c739f42ba54a1ebbb9655f5034e315f.tar.bz2 forayios-daee1f1b5c739f42ba54a1ebbb9655f5034e315f.zip |
'weak self' stuff
Diffstat (limited to '')
-rw-r--r-- | foray/Presenters/PenguinItemPresenter.swift | 3 | ||||
-rw-r--r-- | foray/Scenes/ForayTableViewController.swift | 6 |
2 files changed, 6 insertions, 3 deletions
diff --git a/foray/Presenters/PenguinItemPresenter.swift b/foray/Presenters/PenguinItemPresenter.swift index 698b56e..c4553ae 100644 --- a/foray/Presenters/PenguinItemPresenter.swift +++ b/foray/Presenters/PenguinItemPresenter.swift @@ -12,11 +12,12 @@ class PenguinItemPresenter { let fetcher = ForayFetcher() func fetch(receiver: @escaping ([PenguinItemViewModel]) -> ()) { - fetcher.fetch(url: "https://users.windblume.net/~nick/upload/dummy.json") { (apiItems: [PenguinItemModel]) in + fetcher.fetch(url: "https://users.windblume.net/~nick/upload/dummy.json") { [weak self] (apiItems: [PenguinItemModel]) in // Callback to main thread here // There probably is a nicer way to do it, but we will DispatchQueue it back // from the Presenter-level for now (main thread from VC onwards) DispatchQueue.main.async { + guard let self = self else { return } receiver(self.transform(models: apiItems)) } } diff --git a/foray/Scenes/ForayTableViewController.swift b/foray/Scenes/ForayTableViewController.swift index 13b9dea..a29088c 100644 --- a/foray/Scenes/ForayTableViewController.swift +++ b/foray/Scenes/ForayTableViewController.swift @@ -47,7 +47,9 @@ class ForayTableViewController: UITableViewController, Coordinated { } func reloadApiData() { - presenter.fetch(receiver: { (data: [PenguinItemViewModel]) in + presenter.fetch { [weak self] (data: [PenguinItemViewModel]) in + guard let self = self else { return } + let groups = Dictionary(grouping: data) { $0.year } self.sections = groups.map { (key, values) in return YearSection(year: key, items: values) @@ -58,7 +60,7 @@ class ForayTableViewController: UITableViewController, Coordinated { self.tableView.reloadData() self.refreshControl?.endRefreshing() self.coordinator?.hideLoading() - }) + } } // MARK: - Table view data source |