0

重现崩溃的步骤:
如果调用 semaphore.wait(),然后在调用 semaphore.signal 之前取消初始化拥有它的视图控制器,则应用程序崩溃。

在类的 dinit 上出现以下错误:

EXC_BAD_INSTRUCTION with the message "BUG IN CLIENT OF LIBDISPATCH: Semaphore object deallocated while in use"

用过的:

let semaphore = DispatchSemaphore(value: 1)

但奇怪的是在 deinit 下添加下面提到的代码修复了崩溃问题,不知道为什么。

 while (semaphore.signal() != 0) {}

那么有什么适当的解决方法吗?

4

0 回答 0