在 SwiftUI 中进行网络请求有多种方法,可以使用 URLSession、Alamofire 等库来实现。下面是一个使用 URLSession 进行网络请求的示例:\n\n首先,创建一个 ViewModel 来处理网络请求逻辑:\n\nswift\nimport Foundation\n\nclass ViewModel: ObservableObject {\n @Published var data: [String] = []\n \n func fetchData() {\n guard let url = URL(string: \"https://api.example.com/data\") else { return }\n \n URLSession.shared.dataTask(with: url) { (data, response, error) in\n guard let data = data else { return }\n \n do {\n let result = try JSONDecoder().decode([String].self, from: data)\n DispatchQueue.main.async {\n self.data = result\n }\n } catch {\n print(error)\n }\n }.resume()\n }\n}\n\n\n然后,在 View 中使用该 ViewModel:\n\nswift\nimport SwiftUI\n\nstruct ContentView: View {\n @ObservedObject var viewModel = ViewModel()\n \n var body: some View {\n List(viewModel.data, id: \.self) { item in\n Text(item)\n }\n .onAppear {\n viewModel.fetchData()\n }\n }\n}\n\nstruct ContentView_Previews: PreviewProvider {\n static var previews: some View {\n ContentView()\n }\n}\n\n\n在上面的示例中,ViewModel 定义了一个 fetchData() 方法来进行网络请求并更新数据。然后,在 View 的 onAppear 闭包中调用该方法来获取数据。在 View 中使用 @ObservedObject 将 ViewModel 与 View 绑定,使得当数据发生变化时,View 能够自动更新。\n\n这只是一个简单的示例,实际的网络请求可能会有更多的参数和处理逻辑。你可以根据具体的需求选择适合的网络请求库来实现。

SwiftUI 网络请求教程:使用 URLSession 获取数据 - 示例代码

原文地址: https://www.cveoy.top/t/topic/psda 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录