Я новичок в разработке iOS, но я начинаю понимать некоторые из более сложных понятий. В настоящее время у меня есть приложение, которое реализует AVCam для захвата видео. AVCam создается в отдельном потоке, но использует представление, которое находится в моем основном файле xib. Когда камера завершена, она вызывает полную функцию в моем классе ViewController. В рамках полной функции я вызываю ряд других функций, которые обновляют пользовательский интерфейс, а также несколько NSLogs. Кажется, все работает нормально, я вижу журналы в консоли сразу, но для обновления пользовательского интерфейса требуется еще 3 секунды. Я пробовал использовать инструменты, чтобы найти нарушительный код, но я не могу найти его. Есть ли другой способ определить, что блокирует пользовательский интерфейс?
Вот код, который вызывается, когда запись завершена;
-(void)movieRecordingCompleted{
[HUD hide:YES];
NSLog(@"movieRecordingCompleted");
[self showModalViewController];
NSString *pathToMovie = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/Movie.mov"];
NSLog(@"pathToMovie: %@", pathToMovie);
pathToTreatedVid = pathToMovie;
NSLog(@"File Save Called");
UISaveVideoAtPathToSavedPhotosAlbum(pathToMovie, nil, NULL, NULL);
}
Все регистрируется немедленно, но прогресс HUD и контроллер модального представления не срабатывают в течение примерно 2 - 5 секунд, это очень странно.
Вот состояние до и после потоков (когда оно заморожено, а когда оно разморожено).