回答編集履歴
2
修正
answer
CHANGED
@@ -31,6 +31,7 @@
|
|
31
31
|
画面表示時に画像をダウンロードしてStoryboardに乗せたUIImageViewに画像を表示しています。
|
32
32
|
```swift
|
33
33
|
import UIKit
|
34
|
+
|
34
35
|
class ViewController: UIViewController {
|
35
36
|
|
36
37
|
@IBOutlet weak var imageView: UIImageView!
|
@@ -41,8 +42,13 @@
|
|
41
42
|
let api = DownLoadManager()
|
42
43
|
api.downLoadImage { (image) in
|
43
44
|
|
45
|
+
if let image = image {
|
46
|
+
|
44
|
-
|
47
|
+
// 画像のダウンロードが成功時画像が設定される
|
45
|
-
|
48
|
+
self.imageView.image = image
|
49
|
+
} else {
|
50
|
+
print("ダウンロード失敗")
|
51
|
+
}
|
46
52
|
}
|
47
53
|
}
|
48
54
|
}
|
@@ -51,7 +57,7 @@
|
|
51
57
|
class DownLoadManager {
|
52
58
|
|
53
59
|
// クロージャー
|
54
|
-
func downLoadImage(task: (image: UIImage) -> ()) {
|
60
|
+
func downLoadImage(task: (image: UIImage?) -> ()) {
|
55
61
|
|
56
62
|
// 画像ダウンロード
|
57
63
|
let url = NSURL(string: "https://teratail.com/uploads/contributed_images/78379419b2c58363c546e3e6e094a8c9.png")
|
@@ -68,6 +74,7 @@
|
|
68
74
|
} else {
|
69
75
|
// エラー時
|
70
76
|
print("Error!")
|
77
|
+
task(image: nil)
|
71
78
|
}
|
72
79
|
})
|
73
80
|
task.resume()
|
1
修正
answer
CHANGED
@@ -6,6 +6,7 @@
|
|
6
6
|
|
7
7
|
使っているところを提示したほうが分かりやすいと思いますので、クロージャーを使用した簡単な例を載せます。
|
8
8
|
|
9
|
+
処理を呼び出したところにダウンロードした画像が渡ってくる感じなので(コールバック)直感的にコードがかけると思います。
|
9
10
|
```swift
|
10
11
|
// DownLoadManagerクラスを生成
|
11
12
|
let api = DownLoadManager()
|