gpt4 book ai didi

iOS 如何确定阻止 UI 的内容

转载 作者:IT王子 更新时间:2023-10-29 07:53:48 26 4
gpt4 key购买 nike

我是 iOS 开发的新手,但我开始掌握一些更复杂的概念。我目前有一个实现 AVCam 来捕获视频的应用程序。 AVCam 是在单独的线程上创建的,但使用的是我的主 xib 文件中的 View 。相机完成捕捉后,它会调用我的 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 和模态视图 Controller 在大约 2 - 5 秒内不会触发,这很奇怪。

这是线程之前和之后的状态(卡住时与解冻时)。 enter image description here enter image description here

最佳答案

尝试暂停程序执行(在 Xcode 的底部面板中有一个按钮,第三个)

Pause

  • 然后查看左侧面板(Navigator 面板),
  • 找到 Debug Navigator

Debug Navigator

  • 找到具有main 功能的线程,并且 mb 您可以通过该线程中的方法找出更新您的 UI 需要这么长时间。目前正在运行的方法通常是最上面的黑色方法(灰色列出obj-c内部方法)。

main

关于iOS 如何确定阻止 UI 的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15928035/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com