2012-07-25 60 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