ios - 注册到消息中心的方法在哪个线程中执行?
高洛峰
高洛峰 2017-04-17 11:58:19
0
2
723

我在我的项目中单独建立了一个model类,用来进行数据请求,当数据请求成功时,发送Notification,在viewController中向消息中心注册了对应的执行方法,在这个方法中我做了隐藏MBProgressHuD的操作。但运行的时候Hud却没有隐藏掉,我通过打印日志,发现这个方法中打印的currentThread和主线程中打印的线程信息不一致。所以有几个问题想问:
1.注册到消息中心的方法可能不在主线程中执行?在什么情况下不会。
2.MBProgressHud在什么特殊情况下隐藏会出现问题?

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

reply all(2)
PHPzhong
dispatch_sync(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    //后台
    dispatch_sync(dispatch_get_main_queue(), ^{
        //主进程
        [hud hide:YES afterDelay:3];
    });
});
左手右手慢动作

Solved, for notifications sent in other threads, the corresponding execution methods are also executed in other threads, not in the main thread.
The data request is executed in other threads, so the method of registering to the message center is also executed in other threads, so MBProgressHUD is not hidden.

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template