NSCFType unrecognized selector sent to instance等問題

weixin_34208283發表於2018-05-31

看到這些問題,其實列印的很清楚,就是NSCFType找不到某個方法,但瞬間又疑惑了,NSCFType是什麼鬼,自己也沒呼叫這個類,後來網上查了一下,大部分的資料是說,也就是說,instance物件過早的釋放掉了,指標雖然還是指向那塊記憶體地址,但記憶體實際已經被釋放掉了,自然也就無法識別方法了,而且我當時定義的NSTimer為啥突然就變成NSCFType,而且更奇怪的是有時候還不是NSCFType,而只是個id型別,始終不是NSTime。

後來自己分析了一下,應該是記憶體被佔用了,也就是說 指標還存在,指標指向的地址,釋放後,有的時候卻又被分配了新的東西,當獲取時候自然會出現型別錯誤。為啥會出現這種情況了,後來檢視程式碼發現 有些檢視的更新放在子執行緒,導致 子執行緒和主執行緒之間存在一個時間差,可能檢視指向的地址已經釋放,而指標卻還存在,指標在取地址中的東西時很容易出現問題。

在此提醒大家,寫程式碼時一定要記得,別在子執行緒中更新檢視,可能你當時沒問題,說不定啥時候就出現問題了。

這個問題雖然小,跟同事兩個人,剛開始都沒啥思路,都是後來執行時發現更新檢視不再主執行緒,才想到可能是這個問題造成的,記錄一下,分享給大家,一起學習。

喜歡的點贊哦

相關文章