加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

iphone – 如何检查dispatch_async块已经完成运行

发布时间:2020-12-14 19:57:55 所属栏目:百科 来源:网络整理
导读:所以基本上我需要能够在块运行完毕后运行segue.我有一个块做一些 JSON的东西,我需要知道什么时候运行完毕. 我有一个名为json_queue的队列. jsonQueue = dispatch_queue_create("com.jaboston.jsonQueue",NULL); 然后我有一个使用以下语法的dispatch_async块
所以基本上我需要能够在块运行完毕后运行segue.我有一个块做一些 JSON的东西,我需要知道什么时候运行完毕.

我有一个名为json_queue的队列.

jsonQueue = dispatch_queue_create("com.jaboston.jsonQueue",NULL);

然后我有一个使用以下语法的dispatch_async块:

dispatch_async(jsonQueue,^{
  [self doSomeJSON];
  [self performSegueWithIdentifier:@"modaltomenu" sender:self];
  });

它不会让我执行这句话:“[self performSegueWithIdentifier:@”modaltomenu“sender:self];”

试图从主线程或Web线程以外的线程获取Web锁.这可能是从辅助线程调用UIKit的结果.现在崩溃……

我在哪里可以检查线程何时完成其脏工作,以便我可以调用segue?

谢谢你们可爱的人们.

PS:啤酒和ups以及泰迪熊和鲜花给任何可以提供帮助的人<3.

解决方法

您应该只在主线程上调用UI方法.尝试在主队列上调度performSegueWithIdentifier:

dispatch_async(jsonQueue,^{
    [self doSomeJSON];
    dispatch_sync(dispatch_get_main_queue(),^{
        [self performSegueWithIdentifier:@"modaltomenu" sender:self];
    });
});

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读