速记:swift6的并发机制

资料没看全,先抓一点重点。

swift5程序升级上来一堆错误,主要源自更严格的并发机制。

简单一点就是按如下规则来写:

  • 给类加上@MainActor,强制运行在主线程,据说6.2这是默认的,不需要写出来
  • 给后台方法加上@concurrent,强制后台运行,因为是强制的,就不需要判断当前是什么线程了
  • 在@concurrent方法里用DispatchQueue.main来执行需要在主线程运行的代码
  • nonisolated方法继承调用者线程,这个不用影响不大

说实话我更喜欢明确的线程+锁。