3

我会假设...不。但是如果不是...不是很好吗

NSStringFromClass(SomeClass)

你可以...

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

并随后使用...

SomeClass.stringValue

我敢肯定,元层次结构阻止了这一点是有充分理由的(尽管当说Classes(and Protocols, andMethods等)确实是“真实的”时,这似乎是半真半假Objects)......当很多不能在“元类”上执行使NSObjectan 的“东西”。Object

任何人都可以阐明这种功能差异/提供替代方案(即 resolveClassMethod:可能达到类似结果吗?

4

1 回答 1

4

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

@implementation NSObject (Name)

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

@end
于 2013-11-01T22:23:26.790 回答