回答編集履歴

3

追記

2021/03/02 16:03

投稿

hoshi-takanori
hoshi-takanori

スコア7895

test CHANGED
@@ -47,3 +47,39 @@
47
47
 
48
48
 
49
49
  この 2 つは同じ意味 (後者が「接尾クロージャ」というやつ) で、`{` 〜 `}` の部分が uploadImage メソッドの第 2 引数である completion クロージャになります。`(imageUrl: String) in` の部分はこのクロージャが文字列型の引数 imageUrl を受け取ることを意味していて、このクロージャの中身 (上の例では `print(imageUrl)`) が、画像のアップロードが完了した時に実行される部分になります。
50
+
51
+
52
+
53
+ ---
54
+
55
+
56
+
57
+ > completion クロージャとはコードのどこ箇所だったでしょうか。
58
+
59
+
60
+
61
+ クロージャは、下の画像で選択された部分です。
62
+
63
+
64
+
65
+ ![イメージ説明](acee948079b41146e9372af65b54565a.png)
66
+
67
+
68
+
69
+ また、クロージャをいったん変数に格納して渡すこともできます。
70
+
71
+
72
+
73
+ ```swift
74
+
75
+ let completion = { (imageUrl: String) in
76
+
77
+ print(imageUrl)
78
+
79
+ }
80
+
81
+
82
+
83
+ ImageUploader.uploadImage(image: image, completion: completion)
84
+
85
+ ```

2

ちょっとした修正

2021/03/02 16:03

投稿

hoshi-takanori
hoshi-takanori

スコア7895

test CHANGED
@@ -46,4 +46,4 @@
46
46
 
47
47
 
48
48
 
49
- この 2 つは同じ意味 (後者が「接尾クロージャ」というやつ) で、`{` 〜 `}` の部分が uploadImage メソッドの第 2 引数である completion クロージャになります。`(imageUrl: String) in` の部分はこのクロージャが文字列型の引数 imageUrl を受け取ることを意味していて、このクロージャの中身 (上の例では print(imageUrl)) が、画像のアップロードが完了した時に実行される部分になります。
49
+ この 2 つは同じ意味 (後者が「接尾クロージャ」というやつ) で、`{` 〜 `}` の部分が uploadImage メソッドの第 2 引数である completion クロージャになります。`(imageUrl: String) in` の部分はこのクロージャが文字列型の引数 imageUrl を受け取ることを意味していて、このクロージャの中身 (上の例では `print(imageUrl)`) が、画像のアップロードが完了した時に実行される部分になります。

1

追記

2021/01/08 11:36

投稿

hoshi-takanori
hoshi-takanori

スコア7895

test CHANGED
@@ -7,3 +7,43 @@
7
7
 
8
8
 
9
9
  ③ imageUrl を引数としてクロージャ completion を呼び出してます。
10
+
11
+
12
+
13
+ ---
14
+
15
+
16
+
17
+ > completion クロージャが実行とはどのコードが実行されるのでしょうか。
18
+
19
+
20
+
21
+ たぶん、呼び出し側はこんな感じになると思いますが、
22
+
23
+
24
+
25
+ ```swift
26
+
27
+ ImageUploader.uploadImage(image: image, completion: { (imageUrl: String) in
28
+
29
+ print(imageUrl)
30
+
31
+ })
32
+
33
+ ```
34
+
35
+
36
+
37
+ ```swift
38
+
39
+ ImageUploader.uploadImage(image: image) { (imageUrl: String) in
40
+
41
+ print(imageUrl)
42
+
43
+ }
44
+
45
+ ```
46
+
47
+
48
+
49
+ この 2 つは同じ意味 (後者が「接尾クロージャ」というやつ) で、`{` 〜 `}` の部分が uploadImage メソッドの第 2 引数である completion クロージャになります。`(imageUrl: String) in` の部分はこのクロージャが文字列型の引数 imageUrl を受け取ることを意味していて、このクロージャの中身 (上の例では print(imageUrl)) が、画像のアップロードが完了した時に実行される部分になります。