Strict Concurrencyの憂鬱 〜deinitがactor隔離に対応していない件〜 by Kiichi

iOSDC Japan 2024
ルーキーズLT(5分)

Strict Concurrencyの憂鬱 〜deinitがactor隔離に対応していない件〜

KeyNumberLV Kiichi KeyNumberLV
1

Swift6からSwift Concurrencyにおけるコンパイル時のデータ競合のチェックが厳しくなり、今まで動いていたコードがコンパイルエラーになる可能性があります。
Xcodeでは、Strict Concurrency Checkという機能が用意されており、Swift5の時点から段階的に移行できるようになっています。

Strict Concurrencyに完全に対応するためには全てのUIViewControllerをMainActorに隔離する必要があり、粛々と対応を進める中…
人類は思い出した。deinitはactor隔離に対応していないということを。

どうしてもdeinit内で行いたい処理があるんだがどうしようか?公式で対応する予定はあるんだろうか?
——などとやっているうちに、半年が過ぎた!
その間、特に何もなかった!

今回の発表では、UIViewControllerのdeinitのせいでStrict Concurrency対応に困った場合、どのような代替案があるのか、将来性はあるのか、についてお話しします。
俺たちの冒険はまだまだ続くのか?Kiichi先生の次回作にご期待ください!