質問編集履歴
2
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -11,14 +11,14 @@
|
|
11
11
|
### 該当のソースコード
|
12
12
|
|
13
13
|
```Swift
|
14
|
-
class
|
14
|
+
class GenerateImageViewController: NSViewController {
|
15
15
|
@IBOutlet weak var generateImageProgressBar: NSProgressIndicator!
|
16
16
|
@IBAction func generateImage(_ sender: NSButton) {
|
17
17
|
generateImageProgressBar.minValue = 0.0
|
18
18
|
generateImageProgressBar.maxValue = 100.0
|
19
19
|
generateImageProgressBar.doubleValue = 0.0
|
20
20
|
|
21
|
-
for i in 1...
|
21
|
+
for i in 1...1000 {
|
22
22
|
DispatchQueue.main.async {
|
23
23
|
// 1.画像として保存するNSViewのインスタンスを作成
|
24
24
|
let image = NSView()
|
@@ -34,7 +34,7 @@
|
|
34
34
|
let imageName = "image" + String(i) + ".png"
|
35
35
|
|
36
36
|
// 保存するurlの作成
|
37
|
-
let url = URL(fileURLWithPath:
|
37
|
+
let url = URL(fileURLWithPath: /*画像を保存するディレクトリ*/)
|
38
38
|
let imageURL = url.appendingPathComponent(imageName)
|
39
39
|
|
40
40
|
DispatchQueue.global().async {
|
@@ -44,10 +44,10 @@
|
|
44
44
|
|
45
45
|
DispatchQueue.main.async {
|
46
46
|
// 4.プログレスバーを更新する
|
47
|
-
self.generateImageProgressBar.doubleValue += 0.
|
47
|
+
self.generateImageProgressBar.doubleValue += 0.1
|
48
48
|
}
|
49
49
|
} catch(_) {
|
50
|
-
self.generateImageProgressBar.doubleValue += 0.
|
50
|
+
self.generateImageProgressBar.doubleValue += 0.1
|
51
51
|
}
|
52
52
|
}
|
53
53
|
}
|
1
プログレスバーの初期設定と更新処理の追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -11,38 +11,54 @@
|
|
11
11
|
### 該当のソースコード
|
12
12
|
|
13
13
|
```Swift
|
14
|
+
class GenerateSymbolImageViewController: NSViewController {
|
15
|
+
@IBOutlet weak var generateImageProgressBar: NSProgressIndicator!
|
14
|
-
|
16
|
+
@IBAction func generateImage(_ sender: NSButton) {
|
15
|
-
|
17
|
+
generateImageProgressBar.minValue = 0.0
|
18
|
+
generateImageProgressBar.maxValue = 100.0
|
16
|
-
|
19
|
+
generateImageProgressBar.doubleValue = 0.0
|
17
|
-
let image = NSView()
|
18
20
|
|
21
|
+
for i in 1...10000 {
|
22
|
+
DispatchQueue.main.async {
|
23
|
+
// 1.画像として保存するNSViewのインスタンスを作成
|
24
|
+
let image = NSView()
|
25
|
+
|
19
|
-
|
26
|
+
// 2.NSViewのインスタンスをData型に変換する
|
20
|
-
|
27
|
+
let rep = symbol.bitmapImageRepForCachingDisplay(in: symbol.bounds)!
|
21
|
-
|
28
|
+
symbol.cacheDisplay(in: symbol.bounds, to: rep)
|
22
|
-
|
29
|
+
guard let imageData = rep.representation(using: .png, properties: [:]) else {
|
23
|
-
|
30
|
+
return
|
24
|
-
|
31
|
+
}
|
25
|
-
|
26
|
-
// 画像のファイル名作成
|
27
|
-
let imageName = "image" + String(i) + ".png"
|
28
|
-
|
29
|
-
// 保存するurlの作成
|
30
|
-
let url = URL(fileURLWithPath: /*画像を保存するディレクトリ*/)
|
31
|
-
let imageURL = url.appendingPathComponent(imageName)
|
32
|
-
|
33
|
-
DispatchQueue.global().async {
|
34
|
-
do {
|
35
|
-
// 3.画像を保存する
|
36
|
-
try imageData.write(to: imageURL)
|
37
32
|
|
33
|
+
// 画像のファイル名の作成
|
34
|
+
let imageName = "image" + String(i) + ".png"
|
35
|
+
|
36
|
+
// 保存するurlの作成
|
37
|
+
let url = URL(fileURLWithPath: self.directoryPathLabel.stringValue)
|
38
|
+
let imageURL = url.appendingPathComponent(imageName)
|
39
|
+
|
40
|
+
DispatchQueue.global().async {
|
41
|
+
do {
|
42
|
+
// 3.画像を保存する
|
43
|
+
try imageData.write(to: imageURL)
|
44
|
+
|
38
|
-
|
45
|
+
DispatchQueue.main.async {
|
39
|
-
|
46
|
+
// 4.プログレスバーを更新する
|
47
|
+
self.generateImageProgressBar.doubleValue += 0.01
|
48
|
+
}
|
49
|
+
} catch(_) {
|
50
|
+
self.generateImageProgressBar.doubleValue += 0.01
|
51
|
+
}
|
40
52
|
}
|
41
|
-
|
42
|
-
} catch(_) {
|
43
53
|
}
|
44
54
|
}
|
45
55
|
}
|
56
|
+
override func viewDidLoad() {
|
57
|
+
super.viewDidLoad()
|
58
|
+
|
59
|
+
// プログレスバーの設定
|
60
|
+
generateImageProgressBar.isIndeterminate = false
|
61
|
+
}
|
46
62
|
}
|
47
63
|
|
48
64
|
```
|