我将我的数据存储在一个Actor中。我需要在视图上显示这些数据。我发现唯一的方法是通过使用await命令在Actor上启动一个任务来加载数据。这种方式感觉很笨拙,而且还给我带来了一个我不理解的错误。
Mutable capture of 'inout' parameter 'self' is not allowed in concurrently-executing code
这是我的代码:
actor SimpleActor
{
func getString() -> String
{
return "some value"
}
}
struct SimpleView: View
{
var actor: SimpleActor
@State var value: String
init()
{
actor = SimpleActor()
Task
{
value = await actor.getString() // error here
}
}
var body: some View
{
Text(value)
.width(100, alignment: .leading)
}
}
如何以最佳方式完成这个任务?