【问题标题】:swuftui API callswiftui API 调用
【发布时间】:2022-08-10 01:59:06
【问题描述】:

我不知道出了什么问题,无法获取数据

看法

struct ContentView: View {

@StateObject var vm = ViewModel()

var body: some View {
    List {
        ForEach(vm.model, id: \\.self) { num in
            VStack {
                Text(num.title)
                    .foregroundColor(.red)
            }
        }
    }
    .onAppear{
        vm.getData()
    }
}

}

我正在尝试从 API 获取数据但无法正常工作我不知道出了什么问题

    标签: swift api swiftui


    【解决方案1】:

    视图模型

        class ViewModel: ObservableObject {
        @Published var model: [Model] = []
        
        init() {
            getData()
        }
        
        func getData() {
            let URLString = "https://jsonplaceholder.typicode.com/posts"
            guard let url = URL(string: URLString) else { return }
            
            //API Call
            let task = URLSession.shared.dataTask(with: url) {[weak self] data, _, error in
                guard let data = data, error == nil else { return }
                
                
                // from json data to the model
                
                
                
                do{
                    let result = try JSONDecoder().decode([Model].self, from: data)
                    print(result)
                    
                    DispatchQueue.main.async {
                        self?.model = result
                    }
                    return
                }
                catch {
                    print(error.localizedDescription)
                }
            }
            task.resume()
        }
    }
    

    模型

    struct Model: Codable,Hashable {
        let userID: Int
        let id: Int
        let title: String
        let body: String
    
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-07-18
      • 1970-01-01
      • 1970-01-01
      • 2022-08-09
      • 2021-12-26
      • 1970-01-01
      • 2020-11-14
      相关资源
      最近更新 更多