3

我會假設......沒有。但不會是很好的,如果不是......是否可以向Objective-C元類添加類別?

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)...當許多「東西」使NSObjectObject不能在「元類」上執行時。

任何人都可以揭示出這個功能差異光/可供選擇(即resolveClassMethod:可能達到同樣的效果?

+0

協議和方法** **沒有對象 – 2013-11-01 22:25:56

+0

使用協議類幾乎完全過時,@alexgray:?HTTP://開源.apple.com/source/objc4/objc4-551.1/runtime/Protocol.h整個頭文件被封裝在'#if __OBJC2__'中 –

回答

4

由於元類的實例方法只是在非元級,爲什麼一個類的方法不是簡單的原始(非元)類中添加一個類別

@implementation NSObject (Name) 

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

@end 
+0

呵呵,我忘了你可以像對待NSObject一樣對待它們! –

相關問題