質問

次の問題があります。渡されたクラスのインスタンスを取得し、このインスタンスのクラスの名前を知りたいと考えています。これを入手するにはどうすればよいですか?

役に立ちましたか?

解決

NSStringFromClass([instance class])はトリックを行う必要があります。

他のヒント

あなたがしたいすべてのは、それが特定のクラスのタイプだかどうかを確認するためにオブジェクトをテスト

BOOL test = [self isKindOfClass:[SomeClass class]];

クラス自体の中から

-(NSString *) className
{
    return NSStringFromClass([self class]);
}

ただ、カテゴリを追加します:

NSObject+Extensions.h
- (NSString *)className;

NSObject+Extensions.m
- (NSString *)className {
    return NSStringFromClass(self.class);
}

そして、次のコードを使用します:

NSString *className = [[SomeObject new] className];

あるいは

NSString *className = SomeObject.new.className;

これを使用するにはどこにでもYourProject.pchファイルにカテゴリを追加します。

また[[self class] description]を使用することができます。

オブジェクト:

NSStringFromClass([instance class])

迅速

インスタンスから:

String(describing: YourType.self)

タイプから:

String(describing: self)

あなたがオブジェクトに関する情報を取得するために反映させるに使用できるスウィフトにクラス名を取得する方法を探している場合。

let tokens = split(reflect(self).summary, { $0 == "." })
if let typeName = tokens.last {
    println(typeName)
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top