2011-08-28 36 views
3

我見過Objective-C代碼的例子,顯然是使用不同的方法進行相同/類似的檢查。我想了解什麼是這些區別:這些繼承檢查有什麼區別?

isKindOfClass 

isMemberOfClass 

isSubclassOfClass 

也請註明,如果有,我這裏沒有提到,因爲我學習,目前擁有的東西很差命令檢查。

+1

這個問題會幫助你 - http://stackoverflow.com/questions/2045561/objective-c-iskindofclass-missunderstanding – doNotCheckMyBlog

回答

1

上有谷歌這麼多的鏈接,特別是它已被要求對計算器很多次,檢查在評論我添加的鏈接,並

iPhone SDK difference between isKindOfClass and isMemberOfClass

試着閱讀他們的文檔以及,這將幫助你很多。

編輯

比方說你有一個類名External和內部External類,你有一個子類命名爲Internal。我希望你有關於類的想法可以有一個可以訪問主類的屬性的子類。所以通過這種方法你可以問一個Internal類,你是外部類的子類嗎?

[Internal isSubclassOfClass:External] 

和返回值將是BOOL

  • YES如果接收類是-或子類相同-ACLASS, 否則NO。

多看書可以用蘋果的文檔網站

http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSObject_Class/Reference/Reference.html

+0

同意但是怎麼樣isSubclassOfClass –

+0

檢查我的編輯部分 – doNotCheckMyBlog

3

這些都是實例方法:

isKindOfClass:是該對象的類的實例或子類的實例那個班? isMemberOfClass:對象是一個類的實例嗎? (不包括子類)。

而最後一個是類方法(例如[NSString isSubclassOfClass:[NSObject class]])。

isSubclassOfClass:是否等於另一個類或該類的子類?