iOS開(kāi)發(fā)筆記>> 什么時(shí)候會(huì)報(bào) Unrecognized selector 的異常?
當(dāng)調(diào)用對(duì)象的某個(gè)方法的時(shí)候, 如果在當(dāng)前類中沒(méi)有找到此方法, 那么就到當(dāng)前類的父類中去尋找, 如果在父類中沒(méi)有找到, 那么就去父類的父類中去尋找, 一直找到 NSObject 都沒(méi)有這個(gè)方法, 就會(huì)報(bào)?Unrecognized?selector 的異常.?
是在這之前, objc 的運(yùn)行時(shí)會(huì)給出三次拯救程序崩潰的機(jī)會(huì).?
1,動(dòng)態(tài)添加一個(gè)新方法并執(zhí)行的機(jī)會(huì)
2,當(dāng)系統(tǒng)調(diào)用上一個(gè)方法后未能實(shí)現(xiàn)添加新的方法, 則系統(tǒng)會(huì)再來(lái)調(diào)用下面的這個(gè)方法, 這個(gè)方法是系統(tǒng)提供的一個(gè)將 SEL 轉(zhuǎn)給其他對(duì)象的機(jī)會(huì)
3,當(dāng)?forwardingTargetForselector 返回的 nil 或者 self 時(shí), 會(huì)進(jìn)入到這個(gè)方法, 這個(gè)方法是拯救程序的最后一步.?