假设我们有一个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?
我注意到任意一些观点出现在别人面前!!
答案 0 :(得分:4)
你的问题几乎肯定是这一部分:
dispatch_async(queue, ^{
// Create views, do some setup here, etc etc
你无法在后台线程上执行与视图相关的任何事情(或与UIKit相关的任何事情)。周期。