iOS 中如何不通过继承,重写实例方法 ?

1.因为线上bug 不少,很多崩溃是因为insertOjbect nil 对象,但是这样就会导致崩溃出现在 framework 或者 dylib中,这样,就不容易定位代码了,我现在希望崩溃出现在app 代码中,这样,可以快速定位到崩溃位置

2.我现在希望重写这些方法,但是最好方法名不要改,也不要继承,不然工作量会很大。

3.有什么好的建议么 ?

阅读 3.7k
1 个回答

重载 NSMutableArray 会很麻烦,由于它本身是由类簇组成,如果实现一个子类,需要实现很多个子类的方法。
详见:inheritance-issues-in-objective-c

Swizzle 的方式替换掉原有的方法也不是一个好的选择,因为你没办法看到它原有的实现,涉及到一些引用计数的调用,替换后在某些情况下会崩溃。

更好的方式是使用 Category,新增一个安全的插入方法,并且把所有的 insertOjbect 改为你新增的 my InsertOjbect 方法。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进