ReactiveCocoa 实战-统计界面时长

有个需求,统计一些界面的显示时长,并且考虑锁屏后台等因素。 有了需求,那么我们需要的是下边几种情况 

1. 从viewDidAppear 到 viewDidDisappear

2. 从applicationDidBecomeActive 到applicationWillResignActive


继承大法

一种方式是自定义一个UIViewController类,然后所有统计的界面viewController继承此类,对于使用者来说,只需要继承一下子而已,不需要做额外的工作。但是现在继承带来的问题也是令人诟病的,它增加代码的阅读和理解负担,间接会增加维护成本;而且为了增加一个功能,而在类体系中增加一个结点实在无甚必要。我们需要的是一个不需要侵入和改变我们的类体系的一个方案。


类别+闭包+信号流

从需求的分析中我们看到了,就是基于几个事件点进行处理一下而已,所以用事件流的方式来处理非常合适。在 ReactiveCocoa 中,我们只需要在几个信号上加点代码而已。另外,为了让使用者使用方便,我们将此统计功能抽象为一个函数,像下边用例:

// 一个统计界面ViewController的viewDidLoad中代码

[self staticDurationForCurrentViewControllerwithViewName:@"设置界面"];

上边代码就是统计一下当前界面(设置界面)的显示时长。这个方法的实现如下:


ReactiveCocoa 实战-统计界面时长_第1张图片

你可能感兴趣的:(ReactiveCocoa 实战-统计界面时长)