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