diff --git a/Modules/Account/Sources/Account/AccountManager.swift b/Modules/Account/Sources/Account/AccountManager.swift index 1e1a59d89..f341a46c9 100644 --- a/Modules/Account/Sources/Account/AccountManager.swift +++ b/Modules/Account/Sources/Account/AccountManager.swift @@ -15,7 +15,7 @@ import Core @MainActor public final class AccountManager: UnreadCountProvider { - @MainActor public static var shared: AccountManager! + @MainActor public static var shared = AccountManager() public static let netNewsWireNewsURL = "https://netnewswire.blog/feed.xml" private static let jsonNetNewsWireNewsURL = "https://netnewswire.blog/feed.json" diff --git a/Modules/Account/Sources/Account/DataExtensions.swift b/Modules/Account/Sources/Account/DataExtensions.swift index 64627893b..3c382936a 100644 --- a/Modules/Account/Sources/Account/DataExtensions.swift +++ b/Modules/Account/Sources/Account/DataExtensions.swift @@ -50,10 +50,7 @@ public extension Article { @MainActor var account: Account? { // The force unwrapped shared instance was crashing Account.framework unit tests. - guard let manager = AccountManager.shared else { - return nil - } - return manager.existingAccount(with: accountID) + return AccountManager.shared.existingAccount(with: accountID) } @MainActor var feed: Feed? { diff --git a/Modules/ArticleExtractor/Sources/ArticleExtractor/ArticleExtractor.swift b/Modules/ArticleExtractor/Sources/ArticleExtractor/ArticleExtractor.swift index 7b2daa839..ea7d4d2a0 100644 --- a/Modules/ArticleExtractor/Sources/ArticleExtractor/ArticleExtractor.swift +++ b/Modules/ArticleExtractor/Sources/ArticleExtractor/ArticleExtractor.swift @@ -18,7 +18,7 @@ public enum ArticleExtractorState: Sendable { case cancelled } -public protocol ArticleExtractorDelegate { +public protocol ArticleExtractorDelegate: AnyObject { @MainActor func articleExtractionDidFail(with: Error) @MainActor func articleExtractionDidComplete(extractedArticle: ExtractedArticle) @@ -28,7 +28,7 @@ public protocol ArticleExtractorDelegate { public var state: ArticleExtractorState! public var article: ExtractedArticle? - public var delegate: ArticleExtractorDelegate? + public weak var delegate: ArticleExtractorDelegate? public let articleLink: String? private var dataTask: URLSessionDataTask? = nil