分类中不要重写父类方法!
分类中不要重写父类方法!
分类中不要重写父类方法!
重要的事情说三遍,遇见必须调用的,尽量用继承吧,菜鸡们。
原因:CocoaFramework有很多是用Category实现的,重写之后,会导致在Runtime的时候,只有一个方法会被执行,而哪个会被执行是undefined。
特别是常有控件加分类的时候,更要注意这一点。
举个例子:
有个菜鸡想用给UIlable添加分类的方式实现,实现能点击文字(词语点击)的效果。但是,他重写了父类的
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event{};
这个方法,导致的问题是什么呢?会导致所有控件的点击都很可能会走这个方法,这个方法里的所有当前的处理事件都会被走一遍,从而很可能导致崩溃/内存泄漏等问题。但是短期却很难发现这个问题,但是后期发现了却很难找到问题所在。
所以,上点心吧,防患于未然