如何在没有子类化的情况下扩展类的现有方法?

时间:2013-11-06 13:58:40

标签: objective-c objective-c-category

我不确定是否有可能,但我的问题如下。 我想在init中存在的类的UIKit方法的末尾再添加一行;我无法访问现有init方法的实现,我想修改它。

假设我要添加

NSLog(@"Hello world!");

initWithNibName UIViewController方法的末尾。有可能吗?

1 个答案:

答案 0 :(得分:1)

你可以调配方法实现。检查this

类似的东西:

  1. Swizzle UIKitMethod => yourUIKitMethod,
  2. 在yourUIKitMethod实现中,您调用UIKitMethod实现并添加NSLog行。
  3. 但就改变类的所有实例中的方法实现而言,这不是一个好主意。

    UPD:哦,我刚刚找到article right about what I'm suggesting