web-dev-qa-db-ja.com

メソッドのクラスの名前をNSStringとして取得するにはどうすればよいですか?

メソッドを所有するクラスの名前がNSStringのように必要です。例:SomeClass内に-fooBarメソッドがあり、その-fooBarメソッドがいくつかのコードを実行します。このコードは、どのクラスがそれを「所有」しているかを出力する必要があります。つまり、そのメソッドがどのクラスに属しているかを示します。したがって、クラス名を動的に決定するデバッグ目的で必要になるため、NSStringにクラス名をハードタイプすることはできません。説明するのは難しい。何か案が?

28
HelloMoon

Macでは、次を使用できます。

NSString *className = [self className];

または

NSString *className = NSStringFromClass([self class]);

IPhoneでは、[self className]が存在しないため、以下を使用する必要があります。

NSString *className = NSStringFromClass([self class]);
62
jrbj
NSLog(@"%@",[self className]);

更新:申し訳ありませんが、classNameがiPhoneに存在しないことに気づきませんでした。上記のコメントが示唆したように;使用する ..

NSLog(@"%@", NSStringFromClass([self class]));

..代わりに。

10
Jake

試してみてください:

[[self class] description]
3
Dr. chamran