統計情報(30日間)


最新情報をツイート


人気の投稿

正規表現の使える block injection

このエントリーをはてなブックマークに追加

メソッドに前後処理を加えるライブラリはいくつかあるが、このライブラリはメソッドを正規表現でまとめて対象にできるのが面白い。



引用
BlockInjectionとはなんぞや

Objective-Cの特定のメソッドの前後に処理を追加できるライブラリです。
クラスの外側からアスペクト指向的に振る舞いを追加できるのが特徴です。

「UIViewの勝手に呼ばれているsetterでまとめて全てログ出力させる」ことが3行でできる。
[BILib injectToClassWithNameRegex:BIRegex(@"^UIView$") methodNameRegex:BIRegex(@"^set.*$") preprocess:^{
  NSLog(@"%@", [BILib prettyFunction]);
}];

結果
-[UIView setContentScaleFactor:]
 -[UIView setFrame:]
 -[UIView setNeedsDisplay]
  :
  :

クラス名とメソッド名を正規表現でできるアイディアが秀逸で強力。いろいろ使いでがありそう。

Leave a Reply