Skip to content

Instantly share code, notes, and snippets.

@garethpaul
Created January 20, 2020 05:30
Show Gist options
  • Select an option

  • Save garethpaul/a827ca400443eec43bea7a4f2a6f057a to your computer and use it in GitHub Desktop.

Select an option

Save garethpaul/a827ca400443eec43bea7a4f2a6f057a to your computer and use it in GitHub Desktop.
//
// ImageLoader.swift
// FSQNearby
//
// Created by GPJ on 1/19/20.
// Copyright © 2020 GPJ. All rights reserved.
//
import Combine
import Foundation
class ImageLoader: ObservableObject {
private var url: String = ""
var didChange = PassthroughSubject<Data, Never>()
var data = Data() {
didSet {
didChange.send(data)
load(urlString: self.url)
}
}
init(urlString:String) {
self.url = urlString
load(urlString: url)
}
private func load(urlString:String) {
guard let url = URL(string: urlString) else { return }
let task = URLSession.shared.dataTask(with: url) { data, response, error in
guard let data = data else { return }
DispatchQueue.main.async {
self.data = data
}
}
task.resume()
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment