2012-08-17 60 views

回答

7

類(大寫C)是一個Objective-C運行時類型,代表一個類,而不是一個類的實例。

的文檔並沒有真正提供多少:

代表的Objective-C類的不透明類型。

typedef struct objc_class *Class;

宣佈

objc.h

其最常見的用法可能是檢查類的實例。

if ([value isKindOfClass: [NSDictionary class]) { 
    // value is a dictionary 
} 

你可以這樣寫:

Class dictionaryClass = [NSDictionary class]; 
if ([value isKindOfClass: dictionaryClass) { 
    // value is a dictionary 
} 
+0

謝謝!我想知道是否有一種方法可以在沒有Class(Struct)的情況下編寫相同的代碼。這是一種令人困惑的「Class c = NSClassFromString(r);」。 。讓我閱讀更多關於這個瞭解這個文件。 – Anandh 2012-08-17 16:24:33

+0

在這裏找到一些信息http://macdevcenter.com/pub/a/mac/2002/05/24/runtime_partone.html – Anandh 2012-08-17 16:44:54

+1

我建議一些注意這裏:很多運行時的細節已經從2002年更改爲總體主題,你找到的文件將有所幫助。但是,在任何特定的細節,也可能是錯誤的(有時是可怕的錯誤)。 https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjCRuntimeGuide/Articles/ocrtVersionsPlatforms.html#//apple_ref/doc/uid/TP40008048-CH106 – 2012-08-17 16:58:02