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