莫空面接記録 2#
面接中に質問された、「もしもページを統計するように頼まれたら、各ページに記録をする方法はどうしますか?」
それで、考えてみたら、
- 以前の私の方法は、各画面の viewDidAppear に記録するメソッドを書くことでした。
- 現在の私の方法は、UIViewController を継承した基底クラスを宣言し、そのクラスにログのメソッドを書き、すべての画面をこのクラスから継承することです。
それから、もしも私の画面の一部が UITableViewController を継承している場合はどうするかと聞かれました。私は UITableViewController の基底クラスをさらに作ると答えました。それから、もしも UICollectionViewControoler や UITabBarViewController を継承している場合はどうするかと聞かれました。その時、私は恥ずかしくなりました。。。。。
私は本当に他の方法がわからないのですが、ちょうどランタイムを検索している時に、Method Swizzling and AOP Practiceというブログを見つけました。涙が出そうです。。。まったく同じです、まったく同じです、信じられますか、なぜ早く見つけられなかったのでしょうか。
読んだ後、私は自分がうまく答えたと感じました。前述の 2 つの方法をすべて話しました。
答えは皆さんに上記のリンクを見てもらいます。Method Swizzling と AOP は以前に聞いたことがあるだけで、今日は知識が増えました、無駄ではありませんでした、ええ、皆さんに共有します。
あ、それとデモもあります、著者のデモ、AspectsDemo、このように実装すると、本当に良い感じで、さらに高級な感じがします。皆さんはまずリンクを見て、それからこのデモを見てください。