undeclared selector警告を取り除く


プロトコルやヘッダ宣言されていないセレクターを使おうとするとUndeclared selectorの警告がでます。これを防ぐには、プロトコルやヘッダで宣言すればよいのですが、面倒だったりそうすることが相応しくない場合もあります。そういった場合には、@selector(someMethod)の代わりに、sel_registerName(“someMethod”)と記述すると、警告が発生しないようになります。ただし、この方法を使うと、実行時までセレクタ名があっているか検証されなくなるので、誤植や、呼び出し間違いの危険性がありますのでご注意ください。

SEL sel1 = @selector(someMethod);
SEL sel2 = sel_registerName("someMethod"); //@"someMethod"ではなく、"someMethod"

stackoverflow: How to get rid of the ‘undeclared selector’ warning

iOS Developer Library: Objective-C Runtime Reference

Comments

comments

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です