質問するログイン新規登録

回答編集履歴

2

間違いを修正

2019/06/24 09:07

投稿

MasakiHori
MasakiHori

スコア3391

answer CHANGED
@@ -131,9 +131,9 @@
131
131
 
132
132
  a = nil
133
133
 
134
- f() // クラッシュ(する場合があります)
134
+ f() // prints nil
135
135
  ```
136
- aが解放された後にクロージャfを実行しようとすると、クロージャ内で使用しているaがすでに存在していないため、クラッシュしてしまうのです。
136
+ aが解放された後にクロージャfを実行しようとすると、クロージャ内で使用しているaがすでに存在していないためnilになってしまいます。
137
137
 
138
138
  ###キャプチャしたインスタンスの存在確認
139
139
  では、質問の回答です。

1

短い回答を追加

2019/06/24 09:07

投稿

MasakiHori
MasakiHori

スコア3391

answer CHANGED
@@ -1,6 +1,9 @@
1
1
  初心者にはかなりヘビーな内容になります。 覚悟してください。
2
2
 
3
+ ##短い回答
4
+ [weak self] でキャプチャしたselfがクロージャ実行時に存在しているかどうかを確認しています。
3
5
 
6
+ ##とんでもなく長い回答
4
7
  ### guard let else
5
8
  まず、
6
9
  ```swift