当对象在ios中执行方法时,是否有任何解决方案可以发布通知

时间:2013-10-14 08:54:03

标签: ios objective-c

那里。我得到了2级

@implemention A

-(void) method1{
something;
}
@end

@implemention B

-(void) method2{
 something
}
@end

如果A类的工具无法修改,当A中的method1被调用时,有没有办法在B中调用method2?

4 个答案:

答案 0 :(得分:1)

听起来你正在尝试一些奇怪的事情,但如果没有进一步的信息,你很难给出其他建议。

然而。执行不需要更改类A的实现的一种方法是继承类A 并覆盖方法实现:

- method1 {
    [super method1]; // forward the call on to class A

    // Now you can do what ever you want
    // Post a notification or call method1 on an instance of class B
}

答案 1 :(得分:1)

您想要做的事情类似于method swizzling。小心轻放。你会在这里找到很多可以阅读的内容(objective-c和ios论坛),但仍然可以在这里开始讨论"handle with care"

答案 2 :(得分:0)

viewDidLoad() class B添加观察员

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(method2) name:@"method1Executed" object:nil];

并在method1()的{​​{1}}中添加以下代码

class A

答案 3 :(得分:-1)

试试这个

您可以在Method1

中创建类对象
-(void) method1
{
     B *b = [[B alloc] init ]; // Create object of class B 
     b.method2   // call method of class B
}