objective c中category和extension的區別

2021-08-13 12:21:43 字數 939 閱讀 1295

1樓:

category

用於給class及其subclass新增新的方法有自己單獨的 .h 和 .m 檔案

用於新增新方法,而不能新增新屬性(property)extension

extension常被稱為是匿名的category用於給類新增新方法,但只作用於原始類,不作用於subclass只能對有implementation源**的類寫extension,對於沒有implementation源**的類,比如framework class,是不可以的

extension可以給原始類新增新方法,以及新屬性

2樓:別在掙扎的春天

objective-c中提供了可以讓我們擴充套件類定義的手段:類目,延展和協議。類目:

為已知的類增加新的方法;延展:通知在本類的定義裡使用類目來宣告私有方法;協議:協議宣告瞭可以被任何類實現的方法。

注意:這些手段只能增加類的方法,並不能用於增加例項變數,要增加類的例項變數,只能通過定義子類來間接實現。

1、類目

1)宣告類目

@inte***ce nsstring (numberconvenience)

-(nsnumber *)lengthasnumber;

@end

該宣告具有2個特點。首先,現有類位於@inte***ce關鍵字之後,其後是位於圓括號中的一個新名稱。該宣告表示,類別的名稱是numberconvenience,而且該類別將向nsstring類中新增方法。

只要保證類別名稱的唯一性,你可以向一個類中新增任意多得類別。

其次,你可以指定希望向其新增類別的類以及類別的名稱,而且你還可以列出新增的方法,最後以@end結束。由於不能新增新實現變數,因此與類宣告不同的是,類別的宣告中沒有例項變數部分。

2)類目的侷限性

第一,無法向類中新增新的例項變數。類別沒有位置容納例項變數。

CATE吉他,卡特吉他怎麼樣,今天新買了QM811的單板,在卡特專賣店買的,送了我原裝皮箱

臥槽 福利這麼好 還送了皮箱 666 琴挺好的 手感也不錯 可以的 賺到了 蠻好的 我用的就是 不錯,價效比不錯,適合 卡特吉他qm714有圓角嗎。買的時候是880然後說原價一千三這款吉他怎麼樣啊 這類吉他很難判斷,因為認知度並不高,和型號配置都不是很透明,市場反應更無從談起,一直建議作為新手來說還...

一中,二中,三中,四中,五中,六中,七中,八中具體錄取總分數

在正常情況下,錄取通知書應該在7月30日 最遲8月7日 左右全部發放結束。請耐心等待。一中,二中,三中,四中,五中,六中,七中,八中具體錄取總分數分別告訴我 德陽中學 一中 初中部 老校區 黃河西路90號,皇冠燈附近 高中部 新校區 玉泉路506號,東山腳下。1981年底被省 首批命名為省級重點中學...

ecel中tet函式中,Excel中text函式中format text引數的具體用法和格式

你按f1,輸入text,回車搜尋,很好的解釋和例子。在設定單元格格式,數字,自定義,型別處的所有型別都可以,舉例,在a1輸入 7 1,返回2011 07 01,在b1輸入 text a1,yyyymmdd 返回20110701 excel中的text函式是將一數值轉換為按指定格式表示的文字的函式,也...