小编Job*_*e J的帖子

为什么在 ScrollView 上的可刷新修饰符中取消异步任务(iOS 16)

我正在尝试在面向 iOS 16 的应用程序中的 Scrollview 上使用可刷新修饰符。但是,异步任务在拉动刷新手势期间被取消。

这是一些代码和附加的视频,演示了问题以及带有打印错误的图像:

探索ViemModel.swift

class ExploreViewModel: ObservableObject {
    
    @Published var randomQuotes: [Quote] = []
    
    init() {
        Task {
            await loadQuotes()
        }
    }
     
    @MainActor
    func loadQuotes() async {
         
        let quotesURL = URL(string: "https://type.fit/api/quotes")!
        
        do {
            let (data, urlResponse) = try await URLSession.shared.data(from: quotesURL)
            guard let response = urlResponse as? HTTPURLResponse else { print("no response"); return}
            
            if response.statusCode == 200 {
                let quotes =  try JSONDecoder().decode([Quote].self, from: data)
                randomQuotes.append(contentsOf: quotes)
            }
        } catch {
            debugPrint(error)
            debugPrint(error.localizedDescription)
        }
    } …
Run Code Online (Sandbox Code Playgroud)

scrollview ios swiftui

8
推荐指数
2
解决办法
1549
查看次数

标签 统计

ios ×1

scrollview ×1

swiftui ×1