Вызовы API для приложения SwiftUIIOS

Программируем под IOS
Ответить
Anonymous
 Вызовы API для приложения SwiftUI

Сообщение Anonymous »

Я пытаюсь создать простое приложение на SwiftUI для iOS. Я следую инструкциям видео на YouTube, в котором показано, как выполнить вызов API из PokeAPI, чтобы отобразить список покемонов в представлении. Я сделал каждый шаг таким же, как в видео, но компилятор возвращает мне ошибки, подобные этим, в приведенном ниже коде.
PokemonAPIList.swift

Код: Выделить всё

import Foundation

struct PokemonAPIList: Decodable {
var results: [PokemonListEntry]
}

struct PokemonListEntry: Decodable {
var name: String
var url: String
}
PokemonNetworkManager.swift

Код: Выделить всё

import Foundation
import SwiftUI
import Combine

class PokemonNetworkManager: ObservableObject {
var didChange = PassthroughSubject
 ()

var pokemonList = PokemonAPIList(results: []) {
didSet {
didChange.send(self)
}
}

init() {
guard let url = URL(string: "https://pokeapi.co/api/v2/pokemon?limit=151") else { return }

URLSession.shared.dataTask(with: url) { (data, _, _) in
guard let data = data else { return }

let pokemonList = try! JSONDecoder().decode(PokemonAPIList.self, from: data)

DispatchQueue.main.async {
self.pokemonList = pokemonList
}
}.resume()
}
}
ContentView.swift

Код: Выделить всё

import SwiftUI

struct ContentView: View {
@State var networkingManager = PokemonNetworkManager()

var body: some View {
List(networkingManager.pokemonList.results.identified(by: \.url)) {pokemon in //HERE THE ERRORS
Text(pokemon.name)
.font(.largeTitle)
}
}
}

#if DEBUG
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
#endif
Происходят следующие ошибки:

Невозможно определить тип пути к ключу из контекста; рассмотрите возможность явного указания корневого типа

Вставьте ''

Значение типа '[PokemonListEntry]' не имеет 'идентифицированного' элемента

Единственное, что я изменил, — это @BindableObject на @ObservableObject, потому что я читал в Интернете, что он больше не поддерживается.

Подробнее здесь: https://stackoverflow.com/questions/653 ... pplication
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»