Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
import Foundation
struct XKCD: Codable {
let month: String
let num: Int
let link, year, news, safeTitle: String
let transcript, alt: String
let img: String
let title, day: String
enum CodingKeys: String, CodingKey {
case month, num, link, year, news, transcript,
alt, img, title, day, safeTitle = "safe_title"
}
}
import Foundation
extension URL {
func getFromPublisher<T: Codable>(property: inout Published<T>.Publisher) {
URLSession.shared.dataTaskPublisher(for: self)
.receive(on: DispatchQueue.main)
.map(\.data)
.decode(type: T.self, decoder: JSONDecoder())
.assertNoFailure()
.assign(to: &property)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment