我在我的项目中单独建立了一个model类,用来进行数据请求,当数据请求成功时,发送Notification,在viewController中向消息中心注册了对应的执行方法,在这个方法中我做了隐藏MBProgressHuD的操作。但运行的时候Hud却没有隐藏掉,我通过打印日志,发现这个方法中打印的currentThread和主线程中打印的线程信息不一致。所以有几个问题想问:
1.注册到消息中心的方法可能不在主线程中执行?在什么情况下不会。
2.MBProgressHud在什么特殊情况下隐藏会出现问题?
ringa_lee2017-04-17 12:00:19
解決了,在別的執行緒中發送的通知,對應的執行方法也是在別的執行緒中執行,而不是在主執行緒中執行。
資料請求是在其他執行緒執行的,所以這個註冊到訊息中心的方法也是在別的執行緒執行了,所以MBProgressHUD沒有隱藏掉。