aboutsummaryrefslogtreecommitdiff
path: root/foray
diff options
context:
space:
mode:
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