Я начинаю изучать SwiftUI. Сейчас я думаю о наилучшем способе сопоставления ответа API в ObservableObject
.
Прежде всего, это ответ API:
{
"food": [
"fish",
"meat"
],
"go": [
"London",
"Bangkok"
],
"party": [
"Family",
"Friends"
]
}
Это мой ObservableObject
:
struct MyViewModel: ObservableObject {
var food: [String]
var go: [String]
var party: [String]
func fetchTagMeResponse() {
let url = URL(string: "domain.com/api/tagmes/")
var result = nil
URLSession.shared.dataTask(with: url!) { (data, res, err) in
DispatchQueue.main.async {
// WHAT IS THE BEST WAY TO MAP IT?
}
}.resume()
return result
}
}
Как видите, мне нужен лучший способ обработки ответа на данные после получения его из API в строке кода:
DispatchQueue.main.async {
// WHAT IS THE BEST WAY TO MAP IT?
}
Мое решение
Я думаю об использовании Decodable
и думаю, что это не лучший способ. Потому что, если я больше не буду использовать MyResponse
. Это не нужно?
struct MyResponse: Decodable {
var food: [String]
var go: [String]
var party: [String]
}
Скажите, есть ли у вас, ребята, лучшее решение для этого.