Skip to content

Commit 9d33d26

Browse files
authored
[#460] WebPageMetadatServiceImpl에서 Sendable 이슈를 해결한다 (#495)
* fix: 웹페이지 메타데이터 이미지 저장 Sendable 경고 제거
1 parent c57c3de commit 9d33d26

1 file changed

Lines changed: 7 additions & 11 deletions

File tree

Application/DevLogInfra/Sources/Service/WebPageMetadataServiceImpl.swift

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -74,10 +74,13 @@ final class WebPageMetadataServiceImpl: WebPageMetadataService {
7474
private func extractImageURL(from imageProvider: NSItemProvider?, url: URL) async throws -> URL? {
7575
guard let imageProvider else { return nil }
7676

77+
guard let data = try await imageData(from: imageProvider) else { return nil }
78+
return try await imageStore.saveImage(data, for: url)
79+
}
80+
81+
private func imageData(from imageProvider: NSItemProvider) async throws -> Data? {
7782
return try await withCheckedThrowingContinuation { continuation in
78-
// `[imageStore]`은 배열이 아니고 캡쳐 리스트
79-
// 명시적으로 imageStore을 캡쳐하겠다고 작성한 것
80-
imageProvider.loadObject(ofClass: UIImage.self) { [imageStore] image, error in
83+
imageProvider.loadObject(ofClass: UIImage.self) { image, error in
8184
if let error {
8285
continuation.resume(throwing: error)
8386
return
@@ -89,14 +92,7 @@ final class WebPageMetadataServiceImpl: WebPageMetadataService {
8992
return
9093
}
9194

92-
Task {
93-
do {
94-
let fileURL = try await imageStore.saveImage(data, for: url)
95-
continuation.resume(returning: fileURL)
96-
} catch {
97-
continuation.resume(throwing: error)
98-
}
99-
}
95+
continuation.resume(returning: data)
10096
}
10197
}
10298
}

0 commit comments

Comments
 (0)