将数据从API调用传递到ViewController可以通过以下步骤实现:
以下是一个示例代码片段,演示了如何将数据从API调用传递到ViewController:
class ViewController: UIViewController {
var data: [String] = [] // 用于接收API返回的数据
override func viewDidLoad() {
super.viewDidLoad()
// 发起API调用
APIClient.getData { result in
switch result {
case .success(let response):
// 解析和处理API返回的数据
self.data = response.data
// 在界面上显示数据或执行其他操作
DispatchQueue.main.async {
// 更新UI元素,显示API返回的数据
// ...
}
case .failure(let error):
// 处理API调用失败的情况,例如显示错误提示
DispatchQueue.main.async {
// 显示错误提示
// ...
}
}
}
}
}
// API客户端示例
class APIClient {
static func getData(completion: @escaping (Result<APIResponse, Error>) -> Void) {
// 发送API请求,获取数据
// ...
// 模拟异步API调用结果
DispatchQueue.main.asyncAfter(deadline: .now() + 2) {
let response = APIResponse(data: ["data1", "data2", "data3"])
completion(.success(response))
}
}
}
// API返回数据模型
struct APIResponse {
let data: [String]
}
在上述示例中,ViewController中的data
变量用于接收API返回的数据。在viewDidLoad
方法中,发起了一个名为getData
的API调用,并在回调中处理返回的数据。在这个示例中,假设API调用是异步执行的,并且返回的数据是一个包含字符串的数组。在API调用的回调中,将解析后的数据赋值给ViewController的data
变量,并在界面上显示数据(在示例中省略了更新UI的代码)。如果API调用失败,可以在相应的情况下处理错误并显示错误提示。
请注意,这只是一个简单的示例,实际情况中可能需要根据具体需求和API返回的数据结构进行适当的修改和处理。根据实际情况,可能需要使用更高级的技术,如模型转换、错误处理、缓存等。
领取专属 10元无门槛券
手把手带您无忧上云