@@ -9,18 +9,7 @@ import EssentialFeed
99
1010class SceneDelegate : UIResponder , UIWindowSceneDelegate {
1111 var window : UIWindow ?
12-
13- private lazy var scheduler : AnyDispatchQueueScheduler = {
14- if let store = store as? CoreDataFeedStore {
15- return . scheduler( for: store)
16- }
1712
18- return DispatchQueue (
19- label: " com.essentialdeveloper.infra.queue " ,
20- qos: . userInitiated
21- ) . eraseToAnyScheduler ( )
22- } ( )
23-
2413 private lazy var httpClient : HTTPClient = {
2514 URLSessionHTTPClient ( session: URLSession ( configuration: . ephemeral) )
2615 } ( )
@@ -39,11 +28,7 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate {
3928 return InMemoryFeedStore ( )
4029 }
4130 } ( )
42-
43- private lazy var localFeedLoader : LocalFeedLoader = {
44- LocalFeedLoader ( store: store, currentDate: Date . init)
45- } ( )
46-
31+
4732 private lazy var baseURL = URL ( string: " https://ile-api.essentialdeveloper.com/essential-feed " ) !
4833
4934 private lazy var navigationController = UINavigationController (
@@ -71,13 +56,7 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate {
7156 }
7257
7358 func sceneWillResignActive( _ scene: UIScene ) {
74- scheduler. schedule { [ localFeedLoader, logger] in
75- do {
76- try localFeedLoader. validateCache ( )
77- } catch {
78- logger. error ( " Failed to validate cache with error: \( error. localizedDescription) " )
79- }
80- }
59+ validateCache ( )
8160 }
8261
8362 private func showComments( for image: FeedImage ) {
@@ -86,6 +65,19 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate {
8665 navigationController. pushViewController ( comments, animated: true )
8766 }
8867
68+ private func validateCache( ) {
69+ Task . immediate { @MainActor in
70+ await store. schedule { [ store, logger] in
71+ do {
72+ let localFeedLoader = LocalFeedLoader ( store: store, currentDate: Date . init)
73+ try localFeedLoader. validateCache ( )
74+ } catch {
75+ logger. error ( " Failed to validate cache with error: \( error. localizedDescription) " )
76+ }
77+ }
78+ }
79+ }
80+
8981 private func loadComments( url: URL ) -> ( ) async throws -> [ ImageComment ] {
9082 return { [ httpClient] in
9183 let ( data, response) = try await httpClient. get ( from: url)
0 commit comments