【问题标题】:Is it possible to add a category to an Objective-C meta-class?是否可以将类别添加到 Objective-C 元类?
【发布时间】:2013-11-13 05:12:28
【问题描述】:

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

NSStringFromClass(SomeClass)

你可以...

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

然后使用...

SomeClass.stringValue

我确信元层次结构阻止了这种情况是有充分理由的(尽管当有人说Classes(和Protocols,和Methods等)确实是这样时,这似乎是半真半假“真实的”Objects)...当很多“东西”使 NSObjectObject 无法在“元类”上执行时。

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

【问题讨论】:

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


【解决方案1】:

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

@implementation NSObject (Name)

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

@end

【讨论】:

  • 呃,我忘了你可以像对待NSObjects 一样对待他们!
猜你喜欢
  • 2019-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-05
  • 2018-05-21
  • 2014-01-11
相关资源
最近更新 更多