在Swift中选择列表的第一项

在Swift中选择列表的第一项,swift,swiftui,Swift,Swiftui,我正在学习使用Swift进行API调用的教程,但我只需要获取检索到的数组的第一项。因此,我的问题是:“选择JSON对象数组/字典的第一个元素的最佳方法是什么?” 我正在尝试几种方法,但它们在隧道的尽头没有给我任何启示 下面是示例代码 神奇宝贝 import Foundation struct PokemonAPIList: Decodable { var results: [PokemonListEntry] } struct PokemonListEntry: Decodable

我正在学习使用Swift进行API调用的教程,但我只需要获取检索到的数组的第一项。因此,我的问题是:“选择JSON对象数组/字典的第一个元素的最佳方法是什么?”

我正在尝试几种方法,但它们在隧道的尽头没有给我任何启示

下面是示例代码

神奇宝贝

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 {
  
   @Published var results = [PokemonListEntry]()
     
   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.results = pokemonList.results
            }
        }.resume()
   }
}
ContentView.swift

import SwiftUI
    
struct ContentView: View {
   @ObservedObject var networkingManager = PokemonNetworkManager()

var body: some View {
    let bulbasaur = networkingManager.results.first
    
    Text(bulbasaur!.name) //Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value
        .bold()
}

/*THIS CODE BELOW WORKS
List(networkingManager.results, id:\.name) { pokemon in
            Text(pokemon.name)
        }
*/

#if DEBUG
struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}
#endif

我不知道您到底想要什么,但如果需要返回对象数组的第一个元素,您可以这样做:

array.first()

如果没有,请提供完整的代码以帮助您

获取有关堆栈溢出的代码的帮助,您需要实际共享代码本身:请参阅。你说你有错误,但你没有说它们是什么,我们无法理解你的想法。它返回我以下错误:线程1:致命错误:在展开可选值时意外发现nil请参阅编辑的代码,因此数组是nil或其第一个元素。但是如果我将数组放入列表中,该代码可以工作,并向我显示了所有151个PokemonsTry
,如果让first=array.first{…}