避免滥用继承
继承确实很好用,带来的后果就是子类会把父类的方法挨个执行一遍,乍一看没什么,但是如果这个方法很消耗性能呢。
我们这个项目就遇到了,app 经常卡死,用着用着,就 freeze 了,点哪里都没反应。因为所有页面都继承自基类的一个设计,恰好基类里面有一个比较耗时的操作,每个页面都会执行至少三次,就导致了页面假死。
重构后的做法是设计成一个 category,只是给 UIViewController 添加了几个方法,按需调用,不需要在每个页面都调用,于是解决了这个诡异的 bug。
继承确实很好用,带来的后果就是子类会把父类的方法挨个执行一遍,乍一看没什么,但是如果这个方法很消耗性能呢。
我们这个项目就遇到了,app 经常卡死,用着用着,就 freeze 了,点哪里都没反应。因为所有页面都继承自基类的一个设计,恰好基类里面有一个比较耗时的操作,每个页面都会执行至少三次,就导致了页面假死。
重构后的做法是设计成一个 category,只是给 UIViewController 添加了几个方法,按需调用,不需要在每个页面都调用,于是解决了这个诡异的 bug。