У меня есть enum States, сопоставление с изображениями, которые я сохранил в своей папке .xcassets:
enum States: String {
case AL, AR, etc
var image: UIImage {
switch self {
case .AL: return UIImage(named: "Alabama")!
case .AR: return UIImage(named: "Arkansas")!
}
}
}
Структура программы:
struct Programs: Codable, Identifiable {
enum CodingKeys: CodingKey {
case programName, programState
}
var id = UUID()
var programName: String
var programState: String
func mapToStates() -> States? {
return States(rawValue: programState)
}
}
}
Программа JSON:
{
"programName": "Alabama Time",
"programState": "AL",
}
Использование его с SwiftUI в ProgramRow:
struct ProgramRow: View {
var programData: Programs
var body: some View {
VStack(alignment: .leading) {
HStack {
Image(uiImage: States.AL.image) <-- use here, right now static value
VStack(alignment: .leading) {
Text(programData.programName)
}
}.padding()
}
}
}
Мой вопрос заключается в том, как лучше всего проверить возвращенный JSON и показать изображение состояния, соответствующее тому, что возвращается из JSON