8得票1回答
SwiftUI视图模型为什么应该用@MainActor进行注释?

我一直在关注苹果的WWDC21会议上与并发相关的讲座,以及阅读了大量有关苹果并发更新的文章;然而,我无法理解一件事:为什么人们要提供建议,让您使用@MainActor对视图模型进行注释?从我所了解的情况来看,通过将视图模型属性设置为视图中的@StateObject或@ObservedObjec...

7得票1回答
如何使用SwiftUI按钮执行异步操作

我想在SwiftUI中点击一个按钮,触发JSON编码操作。由于此操作耗时,因此我需要它是异步的。我已经尝试了两个解决方案,但它们都不起作用。一个主要问题是如何创建JSON编码的异步版本? 解决方案1) public func encodeJSON<T>(_ value: T, ...

7得票1回答
使Swift并发中的任务串行运行

我有一个基于文档的应用程序,它使用结构体作为其主要数据/模型。由于模型是(子类的)NSDocument的属性,因此需要从主线程访问它。目前一切顺利。 但是,对数据进行的某些操作可能需要相当长的时间,我想提供用户进度条。这就是问题开始的地方。特别是当用户从GUI中快速启动两个操作时。 如果我...

7得票2回答
如何使用Swift Concurrency在后台执行CPU密集型任务而不会阻塞UI更新?

我有一个ObservableObject,它可以执行占用CPU资源的重型工作: import Foundation import SwiftUI @MainActor final class Controller: ObservableObject { @Published pri...