我正在尝试理解一种设计模式,以访问Swiftui视图中演员类型中持有的孤立状态。

问题描述 投票:0回答:2

接受的答案可能无法套上所有用例。

在我的情况下,我希望
Actor-isolated property 'num' can not be referenced from the main actor
保留一个

ObservableObject

,但可以从Swiftui视图中访问其属性之一。所以我只添加
actor

swift concurrency swiftui
2个回答
7
投票
@MainActor

您需要在视图模型上使用
actor Model: ObservableObject { @MainActor @Published var num: Int = 0 func updateNumber(_ newNum: Int) { Task { @MainActor in self.num = newNum } } // all other properties and functions will remain isolated to the actor }
(命名
MainActor
),这表明其中所有派遣都在主线程上(当然,假设您将使用新的Swift并发系统为其)。
所以看起来像

Model

注:我建议在课堂内进行所有更新,因为某个地方的某人可能会忘记以正确的方式进行更新。
    

5
投票

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.