GCD,执行顺序?

时间:2013-02-25 21:07:46

标签: ios uiview grand-central-dispatch uivewcontroller

假设我们有一个UIVewcontroller,称之为A,在该VC的viewdidload中我们添加了两个UIViewcontrollers(B,C)。现在要在Viewdidload A中使UI顺利进行,我们做一些GCD工作

  dispatch_queue_t queue = dispatch_queue_create("CustomQueue", NULL);
  dispatch_async(queue, ^{
  // Create views, 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:myview1];
    [self.view addSubview:myview2];
    [self.view addSubview:myview3];
   });
 });

现在基于此代码,我保证会以相同的顺序添加视图吗?查看1,然后是2,然后是3?

我注意到任意一些观点出现在别人面前!!

1 个答案:

答案 0 :(得分:4)

你的问题几乎肯定是这一部分:

  dispatch_async(queue, ^{
  // Create views, do some setup here, etc etc

无法在后台线程上执行与视图相关的任何事情(或与UIKit相关的任何事情)。周期。