【问题标题】:Can I call a ClassB method from the delegate object?我可以从委托对象调用 ClassB 方法吗?
【发布时间】:2010-08-26 01:18:13
【问题描述】:

如何从另一个类调用 Objective-C 方法?

例如,在 xCode 中,我有两个脚本:委托和另一个。如何从委托中调用 script2 上的 someFunction?

【问题讨论】:

  • 你试过#import "classTwo" 吗?
  • 是的,但它并没有真正起作用......

标签: objective-c function call


【解决方案1】:

如果“脚本”是指类,则需要链接两个类。

如果objectA是objectB的委托,当objectB调用委托协议中的方法时:

if ([self.delegate resposndsToSelector:@selector(classBdidSomething:)]) {
    [self.delegate performSelector:@selector(classBdidSomething:) withObject:self];
}

关于ClassA的实现:

#pragma mark -
#pragma mark Delegate methods
- (void)classBdidSomething:(ClassB *)objectB {
    [objectB methodToBeCalled];
}

如果在线构建时收到错误/警告(如警告:未找到'-methodToBeCalled'方法):

[objectB methodToBeCalled];

这意味着您必须将 ClassB 导入到 ClassA 中,方法是:

#import "ClassB.h"

【讨论】:

  • 对不起,我的意思是我可以从代表那里调用 ClassB 的东西吗? S抱歉造成混淆。
  • 你看到我的回答了吗。我调用 [objectB methodToBeCalled];来自 ClassA,在委托方法上。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-22
相关资源
最近更新 更多