解析Objective-C中多態、動態類型和動態綁定
Objective-C中多態、動態類型和動態綁定是本文要介紹的內容,主要是倆學習Objective-C中的一些相關的內容,從而來學習Objective-C的使用方法,具體內容來看詳細內容講解。
一、多態
相同的名稱、不同的類。使不同的類共享相同的方法名稱的能力。
二、動態綁定和id類型
id——通用的對象類型,可以用來存儲屬于任何類的對象。如:id dataValue;(不用加*號)
三、編譯時和運行時檢查
存儲在id變量中的對象類型在編譯時無法確定,所以一些測試推遲到運行時進行。
四、id數據類型與靜態類型
將一個變量定義為特定類的對象時,使用的是靜態形態。
使用動態類型調用一個方法,注意規則:如果在多個類中實現名稱相同的方法,那么每個方法都必須符合各個參數的類型和返回值類型。
五、有關類的問題
NSObject類所支持的一些基本方法。
- -(BOOL) isKindOf:class-object(判斷對象是否是class-object或其子類的成員)
- -(BOOL) isMenberOfClass:class-object(判斷對象是否是class-object的成員)
- -(BOOL) respondsToSelector:selector(判斷對象是否能夠響應selector所指定的方法)
- +(BOOL) instancesRespondToSelector:selector(判斷指定的類實例是否能響應selector所指定的方法)
- +(BOOL) isSubclassOfClass:class-object(判斷對象是否是指定類的子類)
- -(id) performSelector:selector(應用selector指定的方法)
- -(id) performSelector:selector withObject:object(應用selector指定的方法,傳遞參數object)
- -(id) performSelector:selector withObject:object1 withObject:object2(應用selector指定的方法,傳遞參數object1和object2)
要根據類名或另一個對象生成一個類對象,可以向它發送class消息。如:要從名為myClass的類中獲得類對象,可編寫:[myClass class];
六、使用@try處理異常
@try格式:
- @try{
- statement
- statement
- ……
- }
- @catch(NSException *exception){
- statement
- statement
- ……
在@try塊中加入這些statement后,程序正常執行。但如果塊中某一條語句拋出異常,執行不會終止,而是立即跳到catch塊,在那里繼續執行。在@catch塊內處理異常可行的執行程序是記錄出錯消息,清楚和終止執行。
@finally塊包含是否執行拋出異常的@try塊中語句代碼。
@throw指令允許你拋出自己的異常,可以使用該指令拋出特定異常,或者在@catch塊內拋出帶你進入類似如下的代碼的異常:#throw;
小結:解析Objective-C中多態、動態類型和動態綁定的內容介紹完了,希望通過本文的學習能對你有所幫助。