tswi's dev

動くものが正しいものだ

クラス名を指定してオブジェクト取得する方法

NSClassFromStringを利用して、文字列でクラス指定してオブジェクト取得する。

id object = NSClassFromString(@"AnyClassName");

とか

AnyClassName *anyClass = [[NSClassFromString(@"AnyClassName") alloc] initWithAnyMethod];

存在しないクラス名を指定した場合はnilが返る。

ちなみに任意のクラス名を取得するには

NSString *className = NSStringFromClass(anyClass);

とやればいいので、

id object = [[NSClassFromString(NSStringFromClass([clazz class])) alloc] init];

のようにできる。