解析Objective-C中多態、動態類型和動態綁定

來源:互聯網
上載者:User

Objective-C多態、動態類型動態綁定是本文要介紹的內容,主要是倆學習Objective-C中的一些相關的內容,從而來學習Objective-C的使用方法,具體內容來看詳細內容講解。

一、多態

相同的名稱、不同的類。使不同的類共用相同的方法名稱的能力。

二、動態綁定和id類型

id——通用的物件類型,可以用來儲存屬於任何類的對象。如:id dataValue;不用加*號)

三、編譯時間和運行時檢查

儲存在id變數中的物件類型在編譯時間無法確定,所以一些測試延遲到運行時進行。

四、id資料類型與靜態類型

將一個變數定義為特定類的對象時,使用的是靜態形態。

使用動態類型調用一個方法,注意規則:如果在多個類中實現名稱相同的方法,那麼每個方法都必須符合各個參數的類型和傳回值類型。

五、有關類的問題

NSObject類所支援的一些基本方法。

 
  1. -(BOOL) isKindOf:class-object判斷對象是否是class-object或其子類的成員)  
  2. -(BOOL) isMenberOfClass:class-object判斷對象是否是class-object的成員)  
  3. -(BOOL) respondsToSelector:selector判斷對象是否能夠響應selector所指定的方法)  
  4. +(BOOL) instancesRespondToSelector:selector判斷指定的類執行個體是否能響應selector所指定的方法)  
  5. +(BOOL) isSubclassOfClass:class-object判斷對象是否是指定類的子類)  
  6. -(id) performSelector:selector應用selector指定的方法)  
  7. -(id) performSelector:selector withObject:object應用selector指定的方法,傳遞參數object)  
  8.  -(id) performSelector:selector withObject:object1 withObject:object2應用selector指定的方法,傳遞參數object1和object2) 

要根據類名或另一個對象產生一個類對象,可以向它發送class訊息。如:要從名為myClass的類中獲得類對象,可編寫:[myClass class];

六、使用@try處理異常

@try格式:

 
  1.      
  2.  @try{  
  3.  statement  
  4.  statement  
  5.  ……  
  6. }  
  7.  @catch(NSException *exception){  
  8.  statement  
  9.  statement  
  10.  ……  

在@try塊中加入這些statement後,程式正常執行。但如果塊中某一條語句拋出異常,執行不會終止,而是立即跳到catch塊,在那裡繼續執行。在@catch塊內處理異常可行的執行程式是記錄出錯訊息,清楚和終止執行。

@finally塊包含是否執行拋出異常的@try塊中語句代碼。

@throw指令允許你拋出自己的異常,可以使用該指令拋出特定異常,或者在@catch塊內拋出帶你進入類似如下的代碼的異常:#throw;

小結:解析Objective-C多態動態類型動態綁定的內容介紹完了,希望通過本文的學習能對你有所協助。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.