aboutsummaryrefslogtreecommitdiff
path: root/foray
diff options
context:
space:
mode:
authorNicholas Tay <nick@windblume.net>2022-07-17 01:56:43 +1000
committerNicholas Tay <nick@windblume.net>2022-07-17 01:56:43 +1000
commitdaee1f1b5c739f42ba54a1ebbb9655f5034e315f (patch)
treedfeb6550b4c97e16c81fa589c8d113ffef599d92 /foray
parent13f60899394f3bda4b77e6d5dc71f418ad0e2975 (diff)
downloadforayios-daee1f1b5c739f42ba54a1ebbb9655f5034e315f.tar.gz
forayios-daee1f1b5c739f42ba54a1ebbb9655f5034e315f.tar.bz2
forayios-daee1f1b5c739f42ba54a1ebbb9655f5034e315f.zip
'weak self' stuff
Diffstat (limited to 'foray')
-rw-r--r--foray/Presenters/PenguinItemPresenter.swift3
-rw-r--r--foray/Scenes/ForayTableViewController.swift6
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