方法的調(diào)用過程
站在用戶的角度思考問題,與客戶深入溝通,找到集賢網(wǎng)站設(shè)計(jì)與集賢網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站制作、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、國際域名空間、虛擬空間、企業(yè)郵箱。業(yè)務(wù)覆蓋集賢地區(qū)。
方法的調(diào)用實(shí)際是發(fā)送SEL消息
SEL是對方法的一種包裝,所以說發(fā)消息,就是發(fā)送SEL數(shù)據(jù)。
將方法包裝成一個SEL類型的數(shù)據(jù),去找對應(yīng)的方法地址,找到方法地址就可以調(diào)用方法。
調(diào)用方法的過程:
a. 將test包裝成SEL
b. 根據(jù)SEL數(shù)據(jù)找到對應(yīng)方法的地址
c. 根據(jù)方法地址調(diào)用對應(yīng)的方法
這個操作是有緩存的,能夠提高查找效率
通過SEL掉用方法
如:
[p test2];
調(diào)用方法,也可以通過下面的方法調(diào)用:
[p performSelector:@selector(test2)];
再如:
[p test2:@”123”];
調(diào)用帶參數(shù)的方法,也可以通過下面的方法調(diào)用:
[p performSelector:@selector(test3:) withObject:@”123”];
SEL是方法的類型
實(shí)際上SEL是struct objc_selector*類型,如:
SEL s = @selector(test); SEL s2 = NSSelectorFromString(@”test”);
每個方法中都有一個_cmd代表當(dāng)前方法,如下面的方法將打印方法名:
- (void) test2 { NSString * str = NSStringFromSelector(_cmd); NSLog(“name:%@”, str); //[self performSelector:_cmd]; //會引發(fā)無限遞歸死循環(huán) }
文章題目:Objective-C(12)方法的類型--SEL
分享鏈接:http://www.rwnh.cn/article44/jsdphe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、建站公司、、響應(yīng)式網(wǎng)站、定制網(wǎng)站、全網(wǎng)營銷推廣
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)