中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

iOS開發篇——OC延展類目協議介紹

發布時間:2020-06-30 22:53:26 來源:網絡 閱讀:761 作者:藍鷗蔣杏飛 欄目:移動開發

藍鷗iOS培訓講師推薦:大家都知道OC是在C++的基礎上面向對象的語言,那么在OC中為大家提供了可以讓我們擴展類定義的手段:也就是類目,延展和協議。下面具體介紹下:

類目:為已知的類增加新的方法;

延展:通知在本類的定義里使用類目來聲明私有方法;

協議:協議聲明了可以被任何類實現的方法。

但是大家一定要知道,這些手段只能增加類的方法,不過不能用于增加實例變量,要增加類的實例變量,只用通過定義子類來間接實現。

1、類目

1)聲明類目

iOS開發篇——OC延展類目協議介紹

注:這個聲明有兩大特點:

1.1、現有類位于@interface關鍵字之后,其后是位于圓括號中的一個新名稱。表示類別的名稱是

NumberConvenience,而且該類別將向NSString類中添加方法。只要保證類別名稱的唯一性,你可以向一個類中添加任意多得類別。

1.2、可以指定希望向其添加類別的類以及類別的名稱,同時還可列出添加的方法,最后以@end結束。但是因為不

能添加新實現變量,所以和類聲明有區別的是,類別的聲明中沒有實例變量部分。

2)類目的局限性

2.1、無法向類中添加新的實例變量。類別沒有位置容納實例變量。

2.2、名稱沖突,即類別中得方法與現有的方法重名。當發生名稱沖突時,類別具有更高的優先級。你得類別方法將完全取代初始方法,從而無法再使用初始方法。有些編程人員在自己的類別方法中增加一個前綴,以確保不發生名稱沖突。

有一些技術可以克服類別無法增加新實例變量的局限。例如,可以使用全局字典存儲對象與你想要關聯的額外變量之間的映射。但此時你可能需要認真考慮一下,類別是否是完成當前任務的最佳選擇。

3)類目的作用

cocoa中得類別主要用于3個目的:

3.1、將類的實現分散到不同文件或者不同框架中。

3.2、創建對私有方法的前向引用。

3.3、向對象添加非正式協議。

2、延展

可以看成是一種匿名的類目,有時候需要一些只是自己看見的,所用的私有方法這種私有方法可以通過延展的方式

來聲明,定義的方法在類本身的@implementation代碼區域中進行實現。

定義延展(舉例)

iOS開發篇——OC延展類目協議介紹

當在定義延展的時候不提供類目名時,延展中定義的方法既被視為“必須實現”的API在這種情況下,如果方法缺少實現代碼,則編譯器會報警告,此時方法的實現必須出現在類主體的@implementation代碼塊中。

3、協議和代理模式

但是,協議只聲明方法,不做具體實現,接受協議的對象來實現。OC的協議是由@protocol聲明的一組方法列表,要求其它的類去實現,相當于@interface部分的聲明。

這么說大家可明白?不明白也沒關系,可以隨時我們這邊溝通,也可多看一些視頻教程

http://www.lanou3g.com/news_show.php?id=279學習一下!

向AI問一下細節

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

AI

泾川县| 乾安县| 措美县| 肥乡县| 翁源县| 法库县| 大新县| 大城县| 阳东县| 台中县| 夏津县| 河池市| 中超| 卢龙县| 漳浦县| 台江县| 历史| 盘锦市| 瓦房店市| 宣恩县| 望江县| 乐山市| 东安县| 葫芦岛市| 明光市| 呼图壁县| 交城县| 西盟| 永定县| 台安县| 顺义区| 富裕县| 樟树市| 静宁县| 商水县| 张家川| 丹棱县| 肇州县| 峨眉山市| 四平市| 长葛市|