Skip to content

Commit 696989a

Browse files
kupriyanovNikx401om
authored andcommitted
Fix KingFisher build for Xcode 26.4 beta 2 Swift 6 strict concurrency
1 parent d4f5e51 commit 696989a

3 files changed

Lines changed: 20 additions & 12 deletions

File tree

Sources.UIBuilder/UIBuilder/Cache/KingFisher/Extensions/HasImageComponent+Kingfisher.swift

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -422,14 +422,15 @@ extension KingfisherWrapper {
422422
if let block = progressBlock {
423423
options.onDataReceived = (options.onDataReceived ?? []) + [ImageLoadingProgressSideEffect(block)]
424424
}
425+
let resolvedOptions = options
425426

426427
let task = KingfisherManager.shared.retrieveImage(
427428
with: source,
428-
options: options,
429+
options: resolvedOptions,
429430
downloadTaskUpdated: { task in
430431
Task { @MainActor in taskAccessor.setTask(task) }
431432
},
432-
progressiveImageSetter: { imageAccessor.setImage($0, options) },
433+
progressiveImageSetter: { imageAccessor.setImage($0, resolvedOptions) },
433434
referenceTaskIdentifierChecker: { issuedIdentifier == taskAccessor.getTaskIdentifier() },
434435
completionHandler: { result in
435436
CallbackQueueMain.currentOrAsync {
@@ -451,10 +452,10 @@ extension KingfisherWrapper {
451452

452453
switch result {
453454
case .success(let value):
454-
imageAccessor.setImage(value.image, options)
455+
imageAccessor.setImage(value.image, resolvedOptions)
455456
case .failure:
456-
if let image = options.onFailureImage {
457-
imageAccessor.setImage(image, options)
457+
if let image = resolvedOptions.onFailureImage {
458+
imageAccessor.setImage(image, resolvedOptions)
458459
}
459460
}
460461
completionHandler?(result)

Sources.UIBuilder/UIBuilder/Cache/KingFisher/Extensions/ImageView+Kingfisher.swift

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -316,17 +316,22 @@ extension KingfisherWrapper where Base: KFCrossPlatformImageView {
316316
if let block = progressBlock {
317317
options.onDataReceived = (options.onDataReceived ?? []) + [ImageLoadingProgressSideEffect(block)]
318318
}
319+
let resolvedOptions = options
319320

320321
let task = KingfisherManager.shared.retrieveImage(
321322
with: source,
322-
options: options,
323+
options: resolvedOptions,
323324
downloadTaskUpdated: { task in
324-
Task { @MainActor in mutatingSelf.imageTask = task }
325+
Task { @MainActor in
326+
var mutatingSelf = self
327+
mutatingSelf.imageTask = task
328+
}
325329
},
326330
progressiveImageSetter: { self.base.image = $0 },
327331
referenceTaskIdentifierChecker: { issuedIdentifier == self.taskIdentifier },
328332
completionHandler: { result in
329333
CallbackQueueMain.currentOrAsync {
334+
var mutatingSelf = self
330335
maybeIndicator?.stopAnimatingView()
331336
guard issuedIdentifier == self.taskIdentifier else {
332337
let reason: KingfisherError.ImageSettingErrorReason
@@ -346,19 +351,19 @@ extension KingfisherWrapper where Base: KFCrossPlatformImageView {
346351

347352
switch result {
348353
case .success(let value):
349-
guard self.needsTransition(options: options, cacheType: value.cacheType) else {
354+
guard self.needsTransition(options: resolvedOptions, cacheType: value.cacheType) else {
350355
mutatingSelf.placeholder = nil
351356
self.base.image = value.image
352357
completionHandler?(result)
353358
return
354359
}
355360

356-
self.makeTransition(image: value.image, transition: options.transition) {
361+
self.makeTransition(image: value.image, transition: resolvedOptions.transition) {
357362
completionHandler?(result)
358363
}
359364

360365
case .failure:
361-
if let image = options.onFailureImage {
366+
if let image = resolvedOptions.onFailureImage {
362367
mutatingSelf.placeholder = nil
363368
self.base.image = image
364369
}

Sources.UIBuilder/UIBuilder/Cache/KingFisher/Extensions/NSTextAttachment+Kingfisher.swift

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -191,14 +191,16 @@ extension KingfisherWrapper where Base: NSTextAttachment {
191191
if let block = progressBlock {
192192
options.onDataReceived = (options.onDataReceived ?? []) + [ImageLoadingProgressSideEffect(block)]
193193
}
194+
let resolvedOptions = options
194195

195196
let task = KingfisherManager.shared.retrieveImage(
196197
with: source,
197-
options: options,
198+
options: resolvedOptions,
198199
progressiveImageSetter: { self.base.image = $0 },
199200
referenceTaskIdentifierChecker: { issuedIdentifier == self.taskIdentifier },
200201
completionHandler: { result in
201202
CallbackQueueMain.currentOrAsync {
203+
var mutatingSelf = self
202204
guard issuedIdentifier == self.taskIdentifier else {
203205
let reason: KingfisherError.ImageSettingErrorReason
204206
do {
@@ -225,7 +227,7 @@ extension KingfisherWrapper where Base: NSTextAttachment {
225227
view.setNeedsDisplay(view.bounds)
226228
#endif
227229
case .failure:
228-
if let image = options.onFailureImage {
230+
if let image = resolvedOptions.onFailureImage {
229231
self.base.image = image
230232
}
231233
}

0 commit comments

Comments
 (0)