3

私は推測します...いいえ。しかし、代わりに...

NSStringFromClass(SomeClass)

あなたは出来る...

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

その後、使用...

SomeClass.stringValue

Classメタ階層がこれを防止する正当な理由があると確信しています (ただし、 es (およびProtocols、およびMethodsなど) が実際に「本物」であると言われると、半分真実のように思えObjectsます)... 「メタクラス」に対して実行できない「もの」を作成しNSObjectます。Object

誰もがこの機能の違いに光を当てることができますか/代替手段を提供できますか(つまり resolveClassMethod:、同様の結果を達成する可能性がありますか?

4

1 に答える 1

4

メタクラスのインスタンス メソッドは非メタ クラスの単なるクラス メソッドなので、元の (非メタ) クラスに単純にカテゴリを追加してみませんか?

@implementation NSObject (Name)

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

@end
于 2013-11-01T22:23:26.790 に答える