是否可以在Objective-C元类中添加类别?

时间:2013-11-01 22:18:38

标签: objective-c nsobject metaclass objective-c-runtime objective-c-category

我会假设......不。但如果不是......那就不好了。

NSStringFromClass(SomeClass)

你可以......

@interface      Class (ToString)
@property (readonly) NSString* stringValue;
@end
@implementation Class (ToString)
- (NSString*) stringValue { return NSStringFromClass(self); }
@end

然后使用......

SomeClass.stringValue

我确信meta-heirarchy阻止这种情况有一个很好的理由(虽然它说Class es {和ProtocolsMethods时似乎是半真半假的等等 - 确实是“真实的”Objects)...当很多“{1}} NSObject的”东西“无法在”元类“上执行时。

任何人都可以了解这种功能差异/提供替代方案(即Object可能会取得类似结果吗?

1 个答案:

答案 0 :(得分:4)

由于元类的实例方法只是非元类的类方法,为什么不简单地在原始(非元)类上添加类别?

@implementation NSObject (Name)

+ (NSString *)className
{
    return NSStringFromClass(self);
}

@end