-2

我正在使用一个插件,插件的pluginClass中有一个方法“A”。如果调用“A”,我想在 myCalss 中调用“B”。如:

-(void)A{
  [myClass B];
}

但是我不想修改pluginClass中的代码。有没有办法将观察者添加到方法或类似方法中?感谢你。

4

2 回答 2

0

我能想到的唯一可接受的选择是从插件中子类化该类,然后在您的子类中通过目标方法并转发它:

@implementation MyPluginClass : PluginClass

-(void) A {
    [super A];
    [myClass B];
}

@end
于 2016-03-21T03:43:25.327 回答
0

似乎很容易解决。创建自己的包含 A 函数的方法 C 并在 C 中添加方法 B。而不是调用 A,然后调用 C。

// BEFORE

[pluginClass A]; // a call to method A that u use originally.

// AFTER

[self C];

-(void)C {
  [pluginClass A];
  [myClass B];
}
于 2016-03-21T03:59:32.890 回答