91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Objective-C(12)方法的類型--SEL

發布時間:2020-07-20 20:07:30 來源:網絡 閱讀:238 作者:ymanmeng123 欄目:移動開發
  • 方法的調用過程

方法的調用實際是發送SEL消息

     SEL是對方法的一種包裝,所以說發消息,就是發送SEL數據。

     將方法包裝成一個SEL類型的數據,去找對應的方法地址,找到方法地址就可以調用方法。


調用方法的過程:

     a. 將test包裝成SEL

     b. 根據SEL數據找到對應方法的地址

     c. 根據方法地址調用對應的方法

     這個操作是有緩存的,能夠提高查找效率


  • 通過SEL掉用方法

如:

 [p test2];

調用方法,也可以通過下面的方法調用: 

[p performSelector:@selector(test2)];

再如:

[p test2:@”123”];

調用帶參數的方法,也可以通過下面的方法調用:

[p performSelector:@selector(test3:) withObject:@”123”];


  • SEL是方法的類型

實際上SEL是struct objc_selector*類型,如:

SEL s = @selector(test);
SEL s2 = NSSelectorFromString(@”test”);


每個方法中都有一個_cmd代表當前方法,如下面的方法將打印方法名:

- (void) test2  {
    NSString * str = NSStringFromSelector(_cmd);
    NSLog(“name:%@”, str);
    //[self performSelector:_cmd]; //會引發無限遞歸死循環
}



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

山丹县| 吉安县| 乌兰县| 西和县| 河津市| 北川| 布拖县| 聊城市| 舞阳县| 霍林郭勒市| 玉屏| 隆尧县| 雷波县| 江都市| 北流市| 吴江市| 呼图壁县| 大埔县| 台中市| 恩平市| 安塞县| 武邑县| 三门县| 无棣县| 新乡市| 漳浦县| 金溪县| 高淳县| 津市市| 宁津县| 内丘县| 瑞丽市| 广东省| 寿阳县| 凤山县| 齐齐哈尔市| 鄂尔多斯市| 福建省| 台南市| 德惠市| 象州县|