iOS unrecognized selector sent to instance 錯誤原因

根據(jù)報錯調(diào)用的方法名, 可能某個對象被當作另一個對象使用了

1.instance對象過早的釋放掉了,指針雖然還是指向那塊內(nèi)存地址,但內(nèi)存實際已經(jīng)被釋放掉了,自然也就無法識別方法了。解決方法:如果是instance是屬性的話,首先確認訪問修飾符是否正確,比如該用copy的地方錯用了retain等;如果不是的話,那就沒啥好辦法了,加斷點,一步步查看源碼,看是否多了release,對于每一次instance調(diào)用的地方,都打印其內(nèi)容。
2.該對象沒有這個方法,檢查一下方法參數(shù)跟調(diào)用該方法時參數(shù)是否匹配(尤其注意該方法的.h文件和.m文件中的方法聲明是否一致。我就由于粗心大意,.m文件中方法名寫錯一個字母,造成.h文件中聲明的方法實際調(diào)用時,找不到該方法的具體實現(xiàn))。

例子:
-[UIView setSelected:]: unrecognized selector sent to instance 0x7ff3f35b1070
可能是誤將uiview當UIButton使用,調(diào)用了setSelected

注:Person為NSObject
-[Person length]: unrecognized selector sent to instance 0x7ff3f35b1070
錯誤將Person當做NSString來使用,比如
id obj = [[Person alloc] init];
NSString *string = obj;
string.length;

-[Person count]: unrecognized selector sent to instance 0x7ff3f35b1070
誤將Person當數(shù)組使用
id obj = [[Person alloc] init];
NSArray *array = obj;
array.count;

-[Person setObject:forKeyedSubscript:]: unrecognized selector sent to instance 0x7ff3f35b1070
錯誤將Person當做NSMutableDictionary來使用

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.ios高性能編程 (1).內(nèi)層 最小的內(nèi)層平均值和峰值(2).耗電量 高效的算法和數(shù)據(jù)結(jié)構(gòu)(3).初始化時...
    歐辰_OSR閱讀 30,262評論 8 265
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴謹 對...
    cosWriter閱讀 11,674評論 1 32
  • 用途:根據(jù)報錯調(diào)用的方法名來快速估計出錯的位置,可能某個對象被當作另一個對象使用了 報錯例子:-[UIView s...
    訷訷閱讀 26,937評論 3 10
  • 轉(zhuǎn)至元數(shù)據(jù)結(jié)尾創(chuàng)建: 董瀟偉,最新修改于: 十二月 23, 2016 轉(zhuǎn)至元數(shù)據(jù)起始第一章:isa和Class一....
    40c0490e5268閱讀 2,074評論 0 9
  • 春天就要來了可是,媽媽,樹的葉子還沒出來呢!親愛的孩子葉子已經(jīng)在樹的身體里了它們在干嘛?它們呀正在排長隊哪!聽它們...
    占從Zoey閱讀 351評論 0 0

友情鏈接更多精彩內(nèi)容