首页 > 代码库 > GCD高级编程例子
GCD高级编程例子
两种方法,实现一件事情做完,再做另外一件事情。
1、
dispatch_async(dispatch_get_main_queue(), ^{
[self.navigationController popToRootViewControllerAnimated:NO];
});
dispatch_barrier_async(dispatch_get_main_queue(), ^{
[[[AppDelegate getDelegate] tabbarController] setSelectedIndex:0];
});
2、
dispatch_group_t group =dispatch_group_create();
dispatch_group_async(group,dispatch_get_main_queue(), ^{
[self.navigationControllerpopToRootViewControllerAnimated:NO];
});
dispatch_group_notify(group,dispatch_get_main_queue(), ^{
[[[AppDelegategetDelegate]tabbarController]setSelectedIndex:0];
});
出现问题的代码如下:
[self.navigationController popToRootViewControllerAnimated:NO];
[[[AppDelegate getDelegate] tabbarController] setSelectedIndex:0];
由于导航控制器里面的子控制器比较多,第一句话执行的时间比较长,当第二句执行完时,第一句还没有执行完。导致再次切换tabbarController时出现崩溃的现象。
GCD高级编程例子
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。