血案之button

關(guān)注swfit專題可以讓你學(xué)習(xí)swfit更簡(jiǎn)單,群號(hào):512847147

大家在開發(fā)中最熟悉應(yīng)該就是button了吧,button最好用的地方應(yīng)該就是可以添加點(diǎn)擊事件了,可以任由我們掉方法,但是你真的會(huì)用
[btn addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];這個(gè)方法嗎?
如果我想在btn上面添加類方法呢?
今天探討的就是給button添加類方法的點(diǎn)擊事件?廢話不多說了,直接上代碼:
> UIButton *btn;
[btn addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
+(void)btnClick:(UIButton *)btn
{
NSLog(@"七秒記憶魚兒");
}

這樣的寫的代碼會(huì)有問題嗎?其實(shí)大家一把用的都是直接在給button上面添加的是對(duì)象方法,沒有添加過類恩方法,那么現(xiàn)在需要你給button添加這樣的類方法,我們?cè)撊绾谓鉀Q呢?

其實(shí)這么問題的答案是需要大家理解self,這個(gè)關(guān)鍵字,在開發(fā)中我們一天都得寫百八十遍的,但是真正理解為self,的應(yīng)該不是很多吧(我是沒有明白)

個(gè)人理解:
如果在對(duì)象方法里面使用self時(shí),表示調(diào)用這個(gè)方法的對(duì)象,也就是個(gè)對(duì)象
如果在類方法里面使用了self時(shí),就表示調(diào)用這個(gè)類方法的類。
不知道大家有沒有遇到過這樣的錯(cuò)誤,就是當(dāng)你在lei方法里面使用self去調(diào)用對(duì)象方法時(shí)候,會(huì)直接報(bào)錯(cuò)誤,這個(gè)就是在類方法里面使用的self時(shí),self就是表示這個(gè)類,而類方法列表里面就沒有這個(gè)方法,因?yàn)榉椒ㄊ菍?duì)象方法,它儲(chǔ)存在對(duì)象方法列表中。

總結(jié)

咱們?cè)倩氐絙utton的點(diǎn)擊方法上面,我們給button添加的響應(yīng)者是self,如果是在類方法里面添加的button的點(diǎn)擊方法,那就不會(huì)直接崩潰,會(huì)正常運(yùn)行。

按鈕出發(fā)的條件:
Target :表示誰去觸發(fā)這個(gè)方法
action: 表示觸發(fā)的方法
forControlEvents:表示出發(fā)的條件
個(gè)人理解就是:當(dāng)按鈕的出發(fā)條件滿足了,target就會(huì)去出發(fā)這個(gè)方法。但是taget是誰就去誰里面找action。如果是對(duì)象就找對(duì)象方法列表里面找這個(gè)方法,如果是類就去類方法列表里面找這個(gè)方法。
如果你不理解什么是對(duì)象方法列表或者類方法列表,請(qǐng)參考兩行代碼引發(fā)的血案

下面為探討的結(jié)果截圖
BFFBBD3F716903BC2C44265F39DFD1E2.jpg
7B6860D1-63EE-40CA-9AD7-6C2E0212CC90.png

這個(gè)為擴(kuò)展在對(duì)象方法里面給button添加類方法的點(diǎn)擊

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

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

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