2012-07-25 75 views
1
@protocol msgRcvdFrom <NSObject> 

@optional 
-(void) msg:(NSString *)msg from:(NSString *)from; 
. 
. 
. 
if([delegate respondsToSelector:@selector(msg:from:)]) 
{ 
    [delegate msg:body from:user]; 
} 

这是我的委托和两个不同的类正在使用它,当调用respondsToSelector时,两个类将被通知?或者我想一次通知一个班级。请清除这个混淆。关于代表的一些混淆

+0

两个类可以在代码中引用它,但目前只有一个对象可以作为委托。 – mask8 2012-07-25 06:50:54

+0

我的课都是这样做的[myAppDelegate setDelegate:self];这是我的委托属性@property(强,非原子)编号为委托; ...如何区分? – 2012-07-25 07:06:18

+0

当一个对象做了'[myAppDelegate setDelegate:self]',那么委托的另一个就会失去它。因为委托只有一个。它的时机 – mask8 2012-07-25 07:11:45

回答

2

delegate通常是一个对象(声明为id< msgRcvdFrom>)。 所以..当你打电话给respondToSelectordelegate你问这个特定的对象,如果它有方法或没有!

+0

我的课都是这样做的[myAppDelegate setDelegate:self];这是我的委托属性@property(强,非原子)编号为委托; ...如何区分? – 2012-07-25 07:06:46

+0

这样只设置最后一个。你必须创建一个NSMutableArray并添加委托.. – Francesco 2012-07-25 07:21:34

+0

创建一个NSMutableArray并添加委托..对不起,我没有得到你的观点 – 2012-07-25 07:25:53