4

我有一个演员:

actor StatesActor {

    var job1sActive:Bool = false
    ...

}

我有一个使用该演员的对象:

class MyObj {
    
    let myStates = StatesActor()
    
    func job1() async {
    
        myStates.job1IsActive = true

    }
}

线:

myStates.job1IsActive = true

出现此错误的错误:

Actor-isolated property 'job1IsActive' can not be mutated from a non-isolated context

如何使用演员正确存储/读取状态信息,以便 MyObj 可以使用它来读取和设置状态?

4

1 回答 1

8

如何使用演员正确存储/读取状态信息,以便 MyObj 可以使用它来读取和设置状态?

您不能从参与者外部改变参与者的实例变量。这就是演员的全部意义所在!

相反,给演员一个方法来设置它自己的实例变量。然后,您将能够调用该方法(使用await)。

于 2021-09-20T18:47:07.410 回答