1. ホーム
  2. objective-c

[解決済み] Objective-Cで実行時にセレクタを動的に作成するにはどうしたらいいですか?

2023-03-01 18:37:56

質問

を作成する方法は知っています。 SEL を使ってコンパイル時に @selector(MyMethodName:) を使っていますが、私がやりたいのは、セレクタを動的に NSString . これは可能ですか?

私にできること

SEL selector = @selector(doWork:);
[myobj respondsToSelector:selector];

私がやりたいこと (擬似的なコード、これは明らかに動作しません)

SEL selector = selectorFromString(@"doWork");
[myobj respondsToSelector:selector];

Apple API ドキュメントを検索してみましたが、コンパイル時の @selector(myTarget:) 構文に依存しない方法を見つけられませんでした。

どのように解決するのですか?

私は Objective-C のプログラマではなく、単なるシンパなのですが、もしかしたら NSSelectorFromString が必要なのかもしれません。これは ランタイムリファレンス には、文字列をセレクタに変換するために使用できることが明示されています。