例如,我们有两个类别:
@interface NSString (Utilities)
- (void)someMethod;
@end
@interface NSString (RBTree)
- (void)someOtherMethod;
@end
我们需要这样的东西:
if (category that contains someMethod is Utilities){
// ... anything here ...
}
好奇。
答案 0 :(得分:2)
你有多好奇?
让我们开始你的旅程:
Objective C Runtime Reference为类别定义了类型Category
,但它本身并不提供任何接受或返回此类型值的函数。这表明某种类别结构确实存在,至少在某些时候存在,但对其进行操作的功能并未公开。
但为什么要公开这个类型,如果不在其他地方引用它??
动态模块加载(Dynamic Loading,objc-load.h
)提供了三个函数,它们采用一个回调函数,该函数传递类型为Category
的参数;所以有更多证据表明存在一些描述类别的结构,至少在加载过程中是这样。
您的下一站可能是Apple的开源存储库...
玩得开心!