このコードだと、ループ中は画面が更新されないので増えていく様子は見えないと思います。
質問用に抽出したコードなのであれば、実際のコードを書いて下さい。
sample
Swift 2
swift
1func test() {
2
3 self.progressBar.minValue = 0
4 self.progressBar.maxValue = Double(arr.count)//最大値はファイル数
5 self.progressBar.doubleValue = 0
6 self.progressBar.indeterminate = false
7
8 //別スレッドで実行
9 dispatch_async(dispatch_get_global_queue(QOS_CLASS_DEFAULT, 0)) {
10 for path in self.arr {
11
12 //処理
13 print(path)
14 NSThread.sleepForTimeInterval(1.0)//コピーの代わりに1秒ウェイト
15
16 //更新 (UIなのでメインスレッドで実行)
17 dispatch_async(dispatch_get_main_queue(), {
18 self.progressBar.incrementBy(1)//1増やす
19 })
20 }
21 print("finished")
22 }
23}
Swift3
ビルド&動作未確認です。
swift
1func test() {
2
3 self.progressBar.minValue = 0
4 self.progressBar.maxValue = Double(arr.count)//最大値はファイル数
5 self.progressBar.doubleValue = 0
6 self.progressBar.indeterminate = false
7
8 //別スレッドで実行
9 DispatchQueue.global(qos: .default).async {
10 for path in self.arr {
11
12 //処理
13 print(path)
14 Thread.sleep(forTimeInterval: 1.0)//コピーの代わりに1秒ウェイト
15
16 //更新 (UIなのでメインスレッドで実行)
17 DispatchQueue.main.async {
18 self.progressBar.increment(by: 1)//1増やす
19 })
20 }
21 print("finished")
22 }
23}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/03/15 05:52 編集
2017/03/15 06:10
2017/03/16 00:31
2017/03/16 01:18
2017/03/16 01:38