4

Objective-Cで、クラスの名前が文字列である場合にクラスを取得してメッセージを送信する方法はありますか?たとえば、次のような関数funcはありfunc(@"NSString") == [NSString class]ますか?

これを知りたいのは、作業中の言語用のダイナミックリンカーライブラリを構築していて、Objective-Cライブラリへのインターフェイスを持たせたいからです。

4

2 に答える 2

13

はい—実際には2つです。Foundationタイプのフレームワーク(Cocoa、Cocoa Touch、GNUstepなど)を使用している場合は、とまったくNSClassFromString()同じ関数を使用できますfunc。フレームワークに依存したくない場合は、同様のランタイム関数がありますobjc_getClass()。これは、を受け取り、const char*指定されたクラスを返します(またはnil、何も見つからない場合)。

于 2010-11-15T01:47:25.980 に答える
2

NSClassFromString(NSString className)名前からクラスオブジェクトを取得するために使用できます。

お役に立てれば!

于 2010-11-15T01:45:59.600 に答える