Я импортирую большое количество данных в CoreData. Я хочу показать progressBar для продвижения импорта.Как показать progressBar во время импорта данных в CoreData?
Сначала я показываю индикатор выполнения. Затем я подсчитываю данные, которые я хочу импортировать. Затем я настраиваю цикл for:
- В этом цикле я сначала установил объект coreData.
- затем я увеличиваю прогресс.
После этого цикла я сохраняю объект coreData и скрываю progressBar.
[self.progressView show];
int allFiles = [file count];
int currentFile = 1;
for(NSString *trackid in file) {
[entidyDesc setName:[track objectForKey:@"theKey"]];
float progress = [self convertAmountForProgressBar:currentFile maxNum:allFiles];
self.progressView.progressBar.progress = progress;
}
[self.progressView hide];
[self.managedObjectContext save:nil];
(упрощенный)
Проблема заключается в том, то Progressbar не обновляется. Он показывает, но сначала обновляется после завершения цикла for и его скрытия. Таким образом, индикатор выполнения отображается только после цикла for.
Любые идеи, как решить эту проблему?
+1 Пользовательский интерфейс находится на передней панели. Любой длинный процесс на передней нити, как большой цикл, заморозит пользовательский интерфейс, пока он не завершится. – TechZen