Ios GCD,影响子UIViewController的队列,可重入

Ios GCD,影响子UIViewController的队列,可重入,ios,uiview,grand-central-dispatch,uivewcontroller,Ios,Uiview,Grand Central Dispatch,Uivewcontroller,假设我们有一个UIViewController,称之为A,在该VC的viewDidLoad中,我们添加两个UIViewController(B,C)。现在,为了使A的viewDidLoad中的UI平滑,我们做了一些GCD工作 dispatch_queue_t queue = dispatch_queue_create("myqueue", NULL); dispatch_async(queue, ^{ // Create webviews, do some setup here, e

假设我们有一个
UIViewController
,称之为A,在该VC的
viewDidLoad
中,我们添加两个
UIViewController
(B,C)。现在,为了使A的
viewDidLoad
中的UI平滑,我们做了一些GCD工作

  dispatch_queue_t queue = dispatch_queue_create("myqueue", NULL);
  dispatch_async(queue, ^{
  // Create webviews, do some setup here, etc etc
  // Perform on main thread/queue
   dispatch_async(dispatch_get_main_queue(), ^{
  // this always has to happen on the main thread
    [self.view addSubview:webView];
   });
 });
因此,
ParentViewController
在UI呈现方面稍好一些


我的问题是:GCD的工作足够吗?或者我应该在子视图控制器的w
视图didload
中执行相同的操作吗?仅仅因为我在后台线程上创建了这些子VC,这是否意味着我不需要对它们执行任何GCD wokr?我试图使我的UI尽可能响应,但不要使代码杂乱无章。我想另一种说法是GCD线程是可重入的吗?iOS中是否有可重入性的概念?

我不认为添加子视图会对性能造成重大影响。此外,应在主UI线程上玩视图(或通常的UIKit)。据我所知,在后台做这样的事情被认为是不好的做法

尝试将GCD/Async内容保存到处理器密集型工作或持续时间未知的任务中,例如从internet下载内容


来源和更多信息:

您是否真的存在您调查过的性能问题,并将视图设置确定为问题的原因?我通过实现此代码提高了一些性能。我只是想知道这种涓涓细流是否会影响ViewController的层次结构。添加通用视图不是,但添加加载pdf文件的uiwebview或复杂视图可能是。