クラスオブジェクト自体からクラスの文字列名を取得しようとしています。
// For instance
[NSArray className]; // @"NSArray"
私は見つけましobject_getClassName(id obj)
たが、インスタンスを渡す必要があります。私の場合、それは不必要な作業です。
では、インスタンスではなく、クラスオブジェクトから文字列を取得するにはどうすればよいですか?
クラスオブジェクト自体からクラスの文字列名を取得しようとしています。
// For instance
[NSArray className]; // @"NSArray"
私は見つけましobject_getClassName(id obj)
たが、インスタンスを渡す必要があります。私の場合、それは不必要な作業です。
では、インスタンスではなく、クラスオブジェクトから文字列を取得するにはどうすればよいですか?
NSString *name = NSStringFromClass ([NSArray class]);
逆に戻ることもできます。
Class arrayClass = NSClassFromString (name);
id anInstance = [[arrayClass alloc] init];
少し少ないタイピングでそれを行う別の方法は次のとおりです。
NSString *name = [NSArray description];
この代替案を検討してください。
const char *name = class_getName(cls);
NSStringオブジェクトを割り当てたり、ASCIIを任意のNSString
表現に変換したりする必要がないため、はるかに高速です。これNSStringFromClass()
が実装方法です。