1霞势、今天遇到一個問題使用第三方SDK催植,在初始化SDK的時候,SDK內(nèi)部返回了一個數(shù)據(jù)對象刻帚,但是這個對象本身是一個Null類型潦嘶,所以在判斷這個數(shù)組的時候出現(xiàn)閃退問題!
- 在第1步SDK返回的對象list前面聲明為NSArray類型崇众,看到這里所以用了一個數(shù)組的常規(guī)方法進行判斷掂僵,忽略了這個對象是被_Nullable修飾,就導(dǎo)致SDK內(nèi)部返回的list為Null類型航厚,所以在第2步的時候調(diào)用.count方法導(dǎo)致出錯:
2、[NSObject(NSObject) doesNotRecognizeSelector:] + 132
因為NSNull類型對象找不到count這個方法锰蓬,因為runtime消息轉(zhuǎn)發(fā)機制幔睬,系統(tǒng)最終調(diào)用doesNotRecognizeSelector拋出異常。
3芹扭、總結(jié)
所以在以后使用方法麻顶,或者類型判斷的時候,多考慮綜合情況舱卡,盡量做好容錯處理辅肾,避免一些特殊數(shù)據(jù)結(jié)構(gòu),或者數(shù)據(jù)類型問題導(dǎo)致崩潰轮锥,也是提高程序健壯性的一個標注矫钓!還有就是千萬不要相信后臺,做好前端的容錯處理交胚,最后代碼修改為: