MBProgressHUD遇到的問題解決

2021-08-11 12:19:56 字數 586 閱讀 8715

因為某些原因呼叫mbprogresshud的時候沒注意不在主線成,導致程式總崩潰在mbprogresshud的這一句

nsassert([nsthread ismainthread], @"mbprogresshud needs to be accessed on the main thread.");

[nsthread ismainthread]的意思是判斷是否在主線程。

nsassert:

是指在開發期間使用的、讓程式在執行時進行自檢的**(通常是乙個子程式或巨集)。斷言為真,則表明程式執行正常,而斷言為假,則意味著它已經在**中發現了意料之外的錯誤。斷言對於大型的複雜程式或可靠性要求極高的程式來說尤其有用。

mbprogresshud needs to be accessed on the main thread

是說必須在主線程中使用mbprogresshud

很多人經常會忽略這個問題直接注釋掉這段demo,同時會發現多出奇奇怪怪的問題。也有很多小白不知所措,個人認為可以主動切換回主線程操作,

dispatch_async(dispatch_get_main_queue(), ^);

直接避免許多麻煩

MBProgressHud 換行顯示

這樣子的類擴充套件可能很多人都見過,但是在最近的專案裡面出現了由於要顯示的提示資訊過長,被省略,資訊顯示不全的情況,故新增了幾個方法。專門用來顯示文字資訊,可以做到自適應文字大小。不多說,如下 h void showxymessage nsstring text void showxymessage...

MBProgressHUD覆蓋鍵盤

傳送訊息的時候,需要用mbprogresshud來覆蓋視窗等待傳送成功,但是無論如何鍵盤都覆蓋不上。於是各種研究,新增到view,新增到window,都無果。想破了腦子,總覺得加到window都覆蓋不了,這個比較奇葩 後來突然檢查了一下window的count,發現居然有2個window!我印象中i...

MBProgressHUD的基本使用

和github上的demo其實差不多,就是小整理了下,當備忘,想做複雜的效果可以參考mbprogresshud在github上的demo,寫得也很清楚明了。以下是 先在.h檔案裡定義 mbprogresshud hud cpp view plain copy 方式1.直接在view上show hud...