關於ios object-c 類別-分類 category 的靜態方法與私人變數,協議 protocol

來源:互聯網
上載者:User

標籤:blog   http   io   ar   os   使用   sp   java   檔案   

關於ios object-c 類別-分類 category 的靜態方法與私人變數,協議 protocol2014-02-18 19:57 315人閱讀 評論(0) 收藏 舉報1.category,覆蓋原類的方法,即使不引用該category標頭檔,也能覆蓋,respondsToSelector:方法也能響應。
2.category,不可以有私人變數,但是可以有@property的聲明,property的聲明只是聲明了該類的set,get方法(需要引用該category的標頭檔),但是category實現的m檔案裡面根本就沒有產生這兩個方法,所以你使用self.xxx時,會掛掉,錯誤提示:沒有get/set方法。
你在category的m檔案裡面@synthesize 也無法聲明,
也就是說,有聲明,無實現。
3.category的靜態方法,可以使用,
即使不聲明,而是直接去實現,
調用的時候(無需引用category的h檔案)雖然會有警告,但依然會執行。
調用的時候,只能用類名,用對象的話,會掛掉。


關於協議@Protocol
協議不能執行個體化,所以不能有執行個體變數(或者叫私人變數),但是可以有@property聲明,這個聲明,只是告訴別人這個協議裡面有set,get方法而已。
注意:盡量不要在@Protocol用@property聲明,很容易出毛病,特別是輸出屬性時。
如果要使用@property的話,可以參考 UITextInputTraits,這個官方協議裡面都是@property

協議時可以有靜態函數的。這個和java裡面的介面有點衝突,介面時不可以有靜態函數的。
協議裡面不能定義static常量,定義時沒錯,一旦引用該檔案,但編譯報錯


非正式協議就時一個分類,category,用於根類的category。
例如@interface NSObject (類別名稱)
但是在object-2.0中,已經用@optional代替了非正式協議

關於ios object-c 類別-分類 category 的靜態方法與私人變數,協議 protocol

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.