SwiftUI 中 async/await 与 Combine 的使用与对比
1. 从主线程更新 UI
在运行目前开发的代码时,可能会注意到 Xcode 对部分代码发出运行时警告。例如下面这段代码,它从 WordsAPI 异步获取一个随机单词,然后将其赋值给 @Published 属性:
class LibraryViewModel: ObservableObject {
@Published var randomWord = "partially"
...
private func fetchRandomWord() async -> Word {
let request = buildURLRequest()
do {
let (data, response) =
try await URLSession.shared.data(for: request)
guard let httpResponse = response as? HTTPURLResponse,
httpResponse.statusCode == 200 else
{
throw WordsAPIError.invalidServerResponse
}
let word = try JSONDecoder().decode(Word.self,
from: data)
return w
超级会员免费看
订阅专栏 解锁全文
83

被折叠的 条评论
为什么被折叠?



