如何在另一个类中调用协议方法
问题描述:
说例如我已经在一个类中声明了一个协议,我希望它在不同的类中被调用。可能吗。如何在另一个类中调用协议方法
@protocol testProtocol
@required
- (void) showTestProtocol:(Call *)callObject;
@end
@interface TestClass1 : UITableViewController {
id<testProtocol> delegate;
}
@property (nonatomic, retain) id delegate;
在实现类
@synthesize delegate;
实际上另一类具有在协议中声明的方法的定义。现在我怎么能在另一个类中使用这个协议来调用这个方法呢?我需要所有其他类应该使用这种方法。
在此先感谢
答
如果您想使用另一个类(比如ClassA的)这个协议中声明的方法,你先导入在此协议中定义的头文件(.h)中。然后,ClassA必须符合协议。如果你希望所有的类都能够实现这个方法,并且你不想明确地确认这个协议,那么你应该考虑使用使用类别的非正式协议。
我不明白,哪个对象应该调用哪个对象的哪个方法?在确认协议的类上,可以从协议调用该方法,就像该类自定义此方法一样。 – V1ru8 2012-01-17 10:36:24
我不认为你完全正确地理解协议的概念。请阅读Apple开发人员文档,并更清楚地重写您的问题。 – Greg 2012-01-17 11:06:24
还要确保你没有通过保留一个委托来创建一个保留周期 - 通常一个委托被分配并且不被保留! – Till 2012-01-17 11:07:03