From 8a06eb6f110f2bcc37460d9415200c072a04087a Mon Sep 17 00:00:00 2001 From: Alan Chu Date: Mon, 4 Oct 2021 11:07:32 -0700 Subject: [PATCH 1/2] Weakify network operation reference in StopViewController Fixes #394 --- OBAKit/Stops/StopViewController.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OBAKit/Stops/StopViewController.swift b/OBAKit/Stops/StopViewController.swift index 339c5fd70..a5e1d4898 100644 --- a/OBAKit/Stops/StopViewController.swift +++ b/OBAKit/Stops/StopViewController.swift @@ -446,7 +446,7 @@ public class StopViewController: UIViewController, title = Strings.updating let op = apiService.getArrivalsAndDeparturesForStop(id: stopID, minutesBefore: minutesBefore, minutesAfter: minutesAfter) - op.complete { [weak self] result in + op.complete { [weak self, unowned op] result in guard let self = self else { return } let broken = self.bookmarkContext != nil && (op.statusCodeIsEffectively404 ?? false) From 3d906cae5e5a6cf2e8b61286378fe47d7eb676bc Mon Sep 17 00:00:00 2001 From: Alan Chu Date: Mon, 4 Oct 2021 11:28:02 -0700 Subject: [PATCH 2/2] Weakify OBAListView swipe action providers Fixes retain cycle in OBAListView --- OBAKit/Controls/ListView/OBAListView.swift | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/OBAKit/Controls/ListView/OBAListView.swift b/OBAKit/Controls/ListView/OBAListView.swift index aa62d7741..49ff3403d 100644 --- a/OBAKit/Controls/ListView/OBAListView.swift +++ b/OBAKit/Controls/ListView/OBAListView.swift @@ -85,7 +85,7 @@ public class OBAListView: UICollectionView, UICollectionViewDelegate { // MARK: - Data source fileprivate func createDataSource() -> UICollectionViewDiffableDataSource { - let dataSource = UICollectionViewDiffableDataSource(collectionView: self) { (collectionView, indexPath, item) -> UICollectionViewCell? in + let dataSource = UICollectionViewDiffableDataSource(collectionView: self) { [unowned self] (collectionView, indexPath, item) -> UICollectionViewCell? in switch item.configuration { case .custom(let config): @@ -231,8 +231,13 @@ public class OBAListView: UICollectionView, UICollectionViewDelegate { return configuration } - configuration.leadingSwipeActionsConfigurationProvider = self.leadingSwipeActions - configuration.trailingSwipeActionsConfigurationProvider = self.trailingSwipeActions + configuration.leadingSwipeActionsConfigurationProvider = { [unowned self] indexPath -> UISwipeActionsConfiguration? in + leadingSwipeActions(for: indexPath) + } + + configuration.trailingSwipeActionsConfigurationProvider = { [unowned self] indexPath -> UISwipeActionsConfiguration? in + trailingSwipeActions(for: indexPath) + } return NSCollectionLayoutSection.list(using: configuration, layoutEnvironment: environment) }