Objective-C:10_protocol

來源:互聯網
上載者:User

標籤:des   style   color   io   使用   ar   strong   檔案   div   

protocol:協議 (相當於C#中的介面) 協議最多用在:代理模式、觀察者模式 OC中類只支援單繼承,但是 可以遵守多份協議  <協議1,協議2,協議3。。。。。>定義一個名叫MyProtocol的協議@protocol MyProtocol @end 只要一個類遵守了謀一份協議,就能擁有這份協議中所有的方法聲明    一個類遵守某份協議的方法:        @interface Person : NSObject     <MyProtocol>        @end      : 繼承     <>    遵守協議 @protocol MyProtocol  @required  //在這個關鍵字之後的方法聲明都要求實現,不實現就會有警告(預設就是@required) @optional  //在這個關鍵字之後的方法聲明不要求實現(不實現也不會有警告) @end 協議也可以遵守另一個協議(就像C#中介面可以實現另一個介面一樣)    一個協議遵守了另外一個協議,就可以擁有另一個協議的所有方法聲明   基協議:    1、NSObject是一個基類,最根本最基本的類,任何其他類最終都要繼承它    2、其實還有一個基協議,名字也叫NSObject,它是一個基協議,最根本最基本的協議    3、NSObject協議中聲明很多最基本的方法,比如description、retain、release等    4、建議每個新的協議都要遵守NSObject協議   可以使用協議限制物件類型:    要求obj,儲存的對象必須遵守MyProtocol協議、並且繼承了Person         Person<MyProtocol> *obj = [[Person alloc] init];        一個類需要遵循協議的時候需要引用協議        一種方法是#import <MyProtocol.h>        一種方法是@protocol  MyProtocol    (使用這種方法的時候需要再對應的 .m 檔案中#import <MyProtocol.h>)優先使用這種方法           總結:    1、協議的定義        @protocol   協議名稱  <NSObject>            //方法聲明列表。。。。。        @end     2、如何遵守協議        -》類遵守協議        @interface  類名:父類名  <協議名稱1,協議名稱2........>         @end         -》協議遵守協議        @protocol  協議名稱  <其他協議名稱1,其他協議名稱2...........>                @end     3、協議中方法聲明的關鍵字        -》@required(預設)  要求實現,如果沒有實現,會發出警告                -》@optional        不要求實現,怎樣都不會有警告      4、定義一個變數的時候,限制這個變數儲存的對象遵守某個協議        類名<協議名稱>  *變數名;        id<協議名稱>   變數名;                NSObject<MyProtocol>  *obj;        id<MyProtocol>  obj2;         如果沒有遵守對應的協議,編譯器會警告     5、@proerty中聲明的屬性也可以用做一個遵守協議的限制        @property  (nonatomic , strong) 類名<協議名稱> *屬性名稱;        @property  (nonatomic , strong)  id<協議名稱>   屬性名稱;                @property  (nonatomic , strong)  Dog<MyProtocol> *dog;        @property  (nonatomic , strong)  id<MyProtocol>  dog;     6、協議可以定義在單獨的.h檔案中,也可以定義在某個類中        如果這個協議只用在某個類中,應該把協議定義在類中        如果這個協議用在很多類中,應該定義在單獨檔案中     7、分類可定義在單獨的 .h和 .m檔案中,也可定義在原來類中        一般情況下,都是定義在單獨檔案中        定義在原來類中的分類,只要求能看懂文法            

Objective-C:10_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.