Skip to content

Instantly share code, notes, and snippets.

@gaeng2y
Created March 19, 2025 08:31
Show Gist options
  • Select an option

  • Save gaeng2y/55bde775d52953877e06e3c726c33b3f to your computer and use it in GitHub Desktop.

Select an option

Save gaeng2y/55bde775d52953877e06e3c726c33b3f to your computer and use it in GitHub Desktop.
@MainActor
class MyDelegate: UICollectionViewDelegate {
var thumbnailTasks: [IndexPath: Task<Void, Never>] = [:]
func collectionView(_ view: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt item: IndexPath) {
let ids = getThumbnailIDs(for: item)
thumbnailTasks[item] = Task {
defer { thumbnailTasks[item] = nil }
let thumbnails = await fetchThumbnails(for: ids)
Task.detached(priority: .background) {
writeToLocalCache(thumbnails)
}
display(thumbnails, in: cell)
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment