From f909aa6d42aa054db6e392cebfd8118cb4d4ffbf Mon Sep 17 00:00:00 2001 From: opficdev Date: Mon, 25 May 2026 21:16:02 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=EC=9B=B9=ED=8E=98=EC=9D=B4=EC=A7=80=20?= =?UTF-8?q?=EB=A9=94=ED=83=80=EB=8D=B0=EC=9D=B4=ED=84=B0=20=EC=9D=B4?= =?UTF-8?q?=EB=AF=B8=EC=A7=80=20=EC=A0=80=EC=9E=A5=20Sendable=20=EA=B2=BD?= =?UTF-8?q?=EA=B3=A0=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Service/WebPageMetadataServiceImpl.swift | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/Application/DevLogInfra/Sources/Service/WebPageMetadataServiceImpl.swift b/Application/DevLogInfra/Sources/Service/WebPageMetadataServiceImpl.swift index 9495ce4f..6526a1f8 100644 --- a/Application/DevLogInfra/Sources/Service/WebPageMetadataServiceImpl.swift +++ b/Application/DevLogInfra/Sources/Service/WebPageMetadataServiceImpl.swift @@ -74,10 +74,13 @@ final class WebPageMetadataServiceImpl: WebPageMetadataService { private func extractImageURL(from imageProvider: NSItemProvider?, url: URL) async throws -> URL? { guard let imageProvider else { return nil } + guard let data = try await imageData(from: imageProvider) else { return nil } + return try await imageStore.saveImage(data, for: url) + } + + private func imageData(from imageProvider: NSItemProvider) async throws -> Data? { return try await withCheckedThrowingContinuation { continuation in - // `[imageStore]`은 배열이 아니고 캡쳐 리스트 - // 명시적으로 imageStore을 캡쳐하겠다고 작성한 것 - imageProvider.loadObject(ofClass: UIImage.self) { [imageStore] image, error in + imageProvider.loadObject(ofClass: UIImage.self) { image, error in if let error { continuation.resume(throwing: error) return @@ -89,14 +92,7 @@ final class WebPageMetadataServiceImpl: WebPageMetadataService { return } - Task { - do { - let fileURL = try await imageStore.saveImage(data, for: url) - continuation.resume(returning: fileURL) - } catch { - continuation.resume(throwing: error) - } - } + continuation.resume(returning: data) } } }