元の質問では、0 から 100 までの整数として設定しprogress
ていました。UIProgressView
progress
dispatch_group_t group = dispatch_group_create();
dispatch_queue_t queue= dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0);
dispatch_group_async(group, queue, ^{
for (int i = 0; i < 100; i++)
{
dispatch_group_async(group, dispatch_get_main_queue(),^{
self.progressBar.progress = ((CGFloat) i) / 100.0;
});
// do big somethings
}
});
または、もっと簡単に言えば、実際にはグループを使用していないためです (グローバル キューには 1 つの操作しかなく、シリアル キューを処理する場合、グループは通常冗長です)。
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0);
dispatch_async(queue, ^{
for (int i = 0; i < 100; i++)
{
dispatch_async(dispatch_get_main_queue(),^{
self.progressBar.progress = ((CGFloat) i) / 100.0;
});
// do big somethings
}
});
それでも進行状況ビューの更新が表示されない場合は、IBOutlet
正しく接続されていないなどの単純なものである必要があります。self.progressBar
でないことを確認してくださいnil
。に設定しprogress
てみ0.5
て、正しく反映されることを確認してください。