Есть мой ContentView.swift:
Код: Выделить всё
struct ContentView: View {
@State private var players = [Player]()
var body: some View {
List(players, id: \._id) { item in
VStack(alignment: .leading) {
Text(item.name)
.font(.headline)
Text(item.country)
}
}.task {
await loadData()
}
}
func loadData() async {
guard let url = URL(string: "https://zsr.octane.gg/players/5f5ae840c6cbf591c568a477") else {
print("URL invalide")
return
}
do {
let (data, _) = try await URLSession.shared.data(from: url)
if let decodedResponse = try? JSONDecoder().decode(Response.self, from: data) {
players = decodedResponse.players
}
} catch {
print("Invalid data")
}
}
}
Код: Выделить всё
struct Response: Codable {
var players: [Player]
}
Код: Выделить всё
struct Player: Codable {
var _id: String
var slug: String
var tag: String
var name: String
var country: String
var team: Team
var accounts: [Account]
var revelant: Bool
}
Код: Выделить всё
struct Team: Codable {
var _id: String
var slug: String
var name: String
var region: String
var image: String
var relevant: Bool
}
Код: Выделить всё
struct Account: Codable {
var platform: String
var id: String
}
Неверные данные с ошибкой : keyNotFound(CodingKeys(stringValue: "revelant", intValue: nil), Swift.DecodingError.Context(codingPath: [], debugDescription: "Нет значения, связанного с ключом CodingKeys(stringValue: "revelant", intValue: nil) ("revelant").", базовая ошибка: nil))
Я следовал руководству, которое работает ну, но когда я заменяю ссылку и использую свои собственные структуры, при запуске приложения ничего не происходит.
Подробнее здесь: https://stackoverflow.com/questions/737 ... i-response
Мобильная версия