objective-cのSEL型の情報を出力する

objective-c(iOS)のプログラムを書いているとメソッドを表すSEL型を扱う機会がある。SEL型に値が正しく受け渡されているか確認したくなったのでメモ。

SEL型の情報を利用するにはいくつか、マクロ関数?が用意されているのでそれを用いる。以下に2つ例を挙げる。

  • sel_getName(SEL sel)

    • selのメソッド名を取得する
  • sel_isEqual(SEL lhs, SEL rhs)

    • lhsとrhsが同じメソッドかどうか。
SEL *sel =  @selector(method);
NSLog(@"selector_name:%s", sel_getName(sel));

SEL型は内部的には構造体として定義されているので、構造体の定義部分を見ればどのような情報があるかは確認できるが、面倒なので確認していない。

参考:

objective c - ios: is there a way to print SEL action? - Stack Overflow