我对 iOS 开发还很陌生,但我开始掌握一些更复杂的概念。我目前有一个实现 AVCam 来捕获视频的应用程序。AVCam 在单独的线程上创建,但使用我的主 xib 文件中的视图。当相机完成捕捉后,它会在我的 ViewController 类中调用一个完整的函数。在完整的函数中,我调用了许多更新 UI 的其他函数以及一些 NSLog。一切似乎都正常,我立即在控制台中看到了日志,但 UI 还需要 3 秒才能更新。我尝试使用工具来查找有问题的代码,但我似乎找不到它。是否有另一种方法来确定 UI 阻止了什么?
这是录制完成时调用的代码;
-(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 秒内没有触发,这很奇怪。
这是线程的前后状态(冻结时与解冻时)。