尝试使用以下由参与者支持的 ObservableObject,并在等待 Task.sleep 时收到错误
EXC_BAD_INSTRUCTION(代码=EXC_I386_INVOP,子代码=0x0)
有什么想法吗?
class Reader: ObservableObject {
static let shared = Reader(actor: .init())
let actor: TestActor
@Published var val = 0
@MainActor func read() async {
val = await actor.val
}
func increment() async -> Bool {
await actor.increment()
await read()
return true
}
init(actor: TestActor) {
self.actor = actor
}
}
actor TestActor {
var val = 0
func increment() async {
let oldval = val
await Task.sleep(2000000000) // Error here!
val += 1
}
}
最佳答案
除了很小的值外,Task.sleep 都会崩溃。这东西很新;你看到的是一个测试版,几乎是一个阿尔法版。它充满了错误。这是其中之一。
关于swift - EXC_BAD_INSTRUCTION 等待 Task.sleep,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68108905/