Objective-C:将代码注入委托方法

时间:2013-04-17 20:04:15

标签: ios objective-c

我想要什么

我想在我的应用程序中添加一些日志记录代码,而无需更新所有视图控制器。

我尝试了什么

我尝试将类别添加到UIViewController并覆盖其中一个委托方法。但是,这产生了一些警告/错误。

我有办法将代码注入我的所有应用程序的ViewControllers吗?

3 个答案:

答案 0 :(得分:2)

查看method swizzling。它是一个功能强大的工具,可以为您节省大量时间。 Swizzle您希望登录的方法之一,然后调用原始方法让它执行原本应该执行的操作。

答案 1 :(得分:2)

您可以继承UIViewController,然后在超类中添加日志记录方法。你仍然需要触摸所有的VC,然后将课程改为你的超级课程。

答案 2 :(得分:0)

你不可能在iOS应用程序中拥有如此多的视图控制器类,触及每个视图控制器类将是一个巨大的问题。因此,创建自己的UIViewController子类,可能是OurSuperViewController,它将作为视图控制器的超类,并在那里添加日志记录。然后修改每个视图控制器类,使它们从OurSuperViewController继承,并确保每个视图控制器方法中都调用super

完成后,您可以通过仅修改OurSuperViewController来随意打开或关闭登录。