1
比方說,我有一個採用一個類,被稱爲像這樣的方法:如何以類型安全的方式詢問班級?
[registry registerClass:[MyClass class]];
如何詢問裏面-registerClass:
類?
-(void) registerClass:(Class)typeClass {
// Verify that instances of typeClass confirm to protocol/respondsToSelector
// ?
// Do stuff
// ...
[myListOfClasses addObject:typeClass];
// ...
}
這是「?」我想知道。如果foo永遠是NSObject的子類,我可以安全地(並且總是)將Class foo
轉換爲NSObject *fooObj
併發送消息嗎?是否有一個所有NSObject元類繼承的根元類?還是所有的Class對象都只是一個元類的實例?
感謝您的信息,你知道我在哪裏可以找到類的參考?我一直在尋找網絡來尋找一些文檔,而Apple的參考文檔與JavaDoc等更具導航性的東西相比並不完全有幫助。 – Sophistifunk 2010-07-15 03:10:51
蘋果Objective C手冊講述了一些關於類是如何對象的,但並不十分詳細,http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/ObjectiveC/ObjC.pdf。 NSObject中的許多類方法應該能夠被調用,但只有一些纔有意義。 http://developer.apple.com/mac/library/documentation/Cocoa/Reference/Foundation/Classes/NSObject_Class/Reference/Reference.html。否則,我還沒有找到如何與一個Class對象進行交互的很好的概要。 – 2010-07-15 19:28:17
這個討論很有趣,但也有點抽象,http://cocoawithlove.com/2010/01/what-is-meta-class-in-objective-c.html。 – 2010-07-15 19:28:43