Skip to content

Instantly share code, notes, and snippets.

@rosskimes
Created September 23, 2019 15:16
Show Gist options
  • Save rosskimes/7e8b4f6a6e1bf9a93efc17fdaba7e1ce to your computer and use it in GitHub Desktop.
Save rosskimes/7e8b4f6a6e1bf9a93efc17fdaba7e1ce to your computer and use it in GitHub Desktop.
import Foundation
struct DataModel: Codable {
let name: String
let description: String
}
struct DataModelV1: Codable {
let name: String
}
extension DataModel {
init?(data: Data) {
let decoder = JSONDecoder()
if let dataModel = try? decoder.decode(DataModel.self, from: data) {
self = dataModel
} else if let v1 = try? decoder.decode(DataModelV1.self, from: data) {
self = DataModel(v1: v1)
} else {
return nil
}
}
init(v1: DataModelV1) {
self.name = v1.name
self.description = "" // Or whatever defaul
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment