莫空面试记 2#
面接中に質問されたこと、もしページを統計して、各ページに記録を付けるとしたら、どうしますか?
それから考えて言いました、
- 以前の私のやり方は、各画面の viewDidAppear で記録するメソッドを書いていました。
- 現在の私のやり方は、UIViewController から継承した基底クラスを宣言し、そのクラスに log メソッドを書いて、すべての画面がそのクラスを継承します。
それから、もし私の画面の中に UITableViewController から継承しているものがあったらどうしますか?と聞かれ、私は再び UITableViewController の基底クラスを書くと言いました。さらに、UICollectionViewController や UITabBarViewController から継承しているものがあったらどうしますか?その時、私は恥ずかしくなりました。。。。。
確かに他にどんな方法があるのか分かりませんでしたが、ちょうど runtime を検索していた時に、あるブログを見つけました、Method Swizzling と AOP 実践、涙が出るほど感動しました。。。全く同じ、全く同じ、どうして、もっと早く見なかったのか。
見た後、私はとても協力的だと感じ、前の二つを言い出しました。

答えは皆さんが上のリンクを見てください、Method Swizzling と AOP の二つは以前に聞いたことがありましたが、今日は知識が増えました、無駄ではありませんでした、うん、皆さんにシェアします。
そういえば、デモもあります、作者のデモ、AspectsDemo、この実装は確かに良さそうで、しかも高級感があります。皆さんはまずリンクを見てから、このデモを見てください。