From 859f479a89189b1a4b06932a86d0fc1128feb561 Mon Sep 17 00:00:00 2001 From: Brent Simmons Date: Wed, 13 Dec 2017 21:19:12 -0800 Subject: [PATCH] Fix a memory leak that happened every time you added a feed. Use a weak delegate to avoid a retain cycle. --- Frameworks/RSFeedFinder/RSFeedFinder/FeedFinder.swift | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Frameworks/RSFeedFinder/RSFeedFinder/FeedFinder.swift b/Frameworks/RSFeedFinder/RSFeedFinder/FeedFinder.swift index b93d45fbf..af597c9b1 100644 --- a/Frameworks/RSFeedFinder/RSFeedFinder/FeedFinder.swift +++ b/Frameworks/RSFeedFinder/RSFeedFinder/FeedFinder.swift @@ -11,14 +11,14 @@ import RSParser import RSWeb import RSCore -public protocol FeedFinderDelegate { +public protocol FeedFinderDelegate: class { func feedFinder(_: FeedFinder, didFindFeeds: Set) } public class FeedFinder { - fileprivate let delegate: FeedFinderDelegate + fileprivate weak var delegate: FeedFinderDelegate? fileprivate var feedSpecifiers = [String: FeedSpecifier]() fileprivate var didNotifyDelegate = false @@ -195,7 +195,7 @@ private extension FeedFinder { func notifyDelegateIfNeeded() { if !didNotifyDelegate { - delegate.feedFinder(self, didFindFeeds: Set(feedSpecifiers.values)) + delegate?.feedFinder(self, didFindFeeds: Set(feedSpecifiers.values)) didNotifyDelegate = true } }