那里。我得到了2级
@implemention A
-(void) method1{
something;
}
@end
@implemention B
-(void) method2{
something
}
@end
如果A类的工具无法修改,当A中的method1被调用时,有没有办法在B中调用method2?
答案 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
}