インスタンスからクラス名を取得する
-
19-09-2019 - |
質問
次の問題があります。渡されたクラスのインスタンスを取得し、このインスタンスのクラスの名前を知りたいと考えています。これを入手するにはどうすればよいですか?
解決
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)
}
所属していません StackOverflow