Skip to content

Commit c04e797

Browse files
author
Chris
authored
Merge pull request #13 from crelies/dev
fix(service): removed possible retain cycle
2 parents d30e7d5 + fc139a9 commit c04e797

File tree

1 file changed

+14
-6
lines changed

1 file changed

+14
-6
lines changed

Sources/RemoteImage/public/Services/RemoteImageService.swift

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -55,18 +55,26 @@ private extension RemoteImageService {
5555
cancellable = dependencies.remoteImageURLDataPublisher.dataPublisher(for: urlRequest)
5656
.map { UIImage(data: $0.data) }
5757
.receive(on: RunLoop.main)
58-
.sink(receiveCompletion: { completion in
58+
.sink(receiveCompletion: { [weak self] completion in
59+
guard let weakSelf = self else {
60+
return
61+
}
62+
5963
switch completion {
6064
case .failure(let error):
61-
self.state = .error(error as NSError)
62-
default: ()
65+
weakSelf.state = .error(error as NSError)
66+
case .finished: ()
67+
}
68+
}) { [weak self] image in
69+
guard let weakSelf = self else {
70+
return
6371
}
64-
}) { image in
72+
6573
if let image = image {
6674
Self.cache.setObject(image, forKey: cacheKey)
67-
self.state = .image(image)
75+
weakSelf.state = .image(image)
6876
} else {
69-
self.state = .error(RemoteImageServiceError.couldNotCreateImage as NSError)
77+
weakSelf.state = .error(RemoteImageServiceError.couldNotCreateImage as NSError)
7078
}
7179
}
7280
}

0 commit comments

Comments
 (0)