概要
Taskのイニシャライザの引数に渡すクロージャ内では、これまでのクロージャとは異なり、classなどの参照型でもselfを明示的に記載する必要がない。Taskのイニシャライザはどういう仕組みになっているのか、また使用する際に気をつけるべき点などを改めて考えてみる。
詳細
Swift Taskのイニシャライザとselfの関係
タイムライン
- オープニング (00:00 ~)
- 今回のテーマ (01:24 ~)
- ドキュメント上のTaskのイニシャライザの定義 (01:51 ~)
- 実装から見たTaskのイニシャライザの定義 (04:09 ~)
- クロージャ内のself (06:42 ~)
- クロージャのselfキャプチャの問題(メモリリーク) (07:03 ~)
- クロージャのselfキャプチャの問題(インタンスの解放遅延) (10:14 ~)
- Taskのイニシャライザのクロージャ内でなぜselfがいらないのか? (12:05 ~)
- Taskのイニシャライザとインタンスの解放遅延 (12:50 ~)
- awaitとselfの解放の関係 (13:25 ~)
- self以外の処理はキャンセルが必要 (14:44 ~)
- Taskを使ってメモリリークを引き起こす可能性 (16:34 ~)
- エンディング (18:00 ~)
感想等は #LFK_DEVPODS へ!