Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
在这里
DispatchQueue.main.sync { print("sync") }
这是我的代码。
override func viewDidLoad() {
super.viewDidLoad()
print("Start")
DispatchQueue.main.async {
print("async")
}
DispatchQueue.main.sync {
print("sync")
}
print("Finish")
}
_dispatch_sync_wait
的反汇编,你会看到消息“BUG IN CLIENT OF LIBDISPATCH: dispatch_sync called on queue already owned by current thread”(LIBDISPATCH客户端BUG:在当前线程上已拥有队列的情况下调用了dispatch_sync)。 - rob mayoff