您可以尝试以下替代方法来获取模型数量:
struct Tap1Section1: View {
@StateObject var viewModel = Api() // <-- here
var body: some View {
VStack {
Text("\(viewModel.models.count)") // <-- here
ForEach(viewModel.models) { item in // <-- here
Text(item.title) // <-- here
}
}
.onAppear {
viewModel.getData()
}
}
}
// -- here
struct Model: Identifiable, Decodable {
let id = UUID()
var title: String
}
class Api: ObservableObject {
@Published var models: [Model] = [] // <-- here
func getData() {
guard let url = URL(string: "https://XXXXXX") else { return }
let token = "28|cSXXXXXX"
var request = URLRequest(url: url)
request.setValue("Bearer \(token)", forHTTPHeaderField: "Authorization")
URLSession.shared.dataTask(with: request) { data, responce, err in
guard let data = data else { return }
do {
let dataModel = try JSONDecoder().decode([Model].self, from: data)
DispatchQueue.main.async {
self.models = dataModel // <-- here
}
} catch {
print("error: ", error)
}
}
.resume()
}
}