在Swift中使用Async/Await模式需要使用Swift 5.5及更高版本。Async/Await是一種用于異步編程的新特性,使得異步代碼的編寫更加簡潔和易于閱讀。
下面是一個使用Async/Await模式的示例:
func fetchData() async throws -> Data {
let url = URL(string: "https://api.example.com/data")!
let (data, response) = try await URLSession.shared.data(from: url)
guard let httpResponse = response as? HTTPURLResponse, httpResponse.statusCode == 200 else {
throw NetworkError.invalidResponse
}
return data
}
async {
do {
let data = try await fetchData()
let json = try JSONSerialization.jsonObject(with: data, options: []) as! [String: Any]
print(json)
} catch {
print("Error fetching data: \(error)")
}
}
在上面的示例中,我們定義了一個異步函數fetchData()
來從遠程API獲取數據。然后我們使用async
來調用這個異步函數,并在返回結果后處理數據或處理錯誤。
需要注意的是,在異步函數前面需要加上async
關鍵字來聲明這是一個異步函數,在調用異步函數時也需要使用await
關鍵字來等待異步操作完成。
通過使用Async/Await模式,我們可以更加清晰地編寫和理解異步代碼。