2009-02-04 60 views
51

有誰知道請檢查是否任擇議定書方法已經實現的最佳途徑。檢查,看是否任擇議定書方法已經實施

我嘗試這樣做:

if ([self.delegate respondsToSelector:@selector(optionalProtocolMethod:)]) 

其中代表是:

id<MyProtocol> delegate; 

不過,我得到一個錯誤,指出該功能respondsToSelector:沒有在協議中找到!

回答

98

respondsToSelector:NSObject協議的一部分。包括MyProtocolNSObject應該解決您的問題:

@protocol MyProtocol <NSObject> 

@optional 
-(void)optionalProtocolMethod:(id)anObject; 

@end 
+3

除非你不應該保留您的代表,那麼,爲什麼你叫[委託發佈]? – SilverSideDown 2012-07-17 15:09:50

2

我要做的就是運用以下幾招:

if(self.delegate && [self.delegate respondsToSelector:@selector(closed)]){ 
    [self.delegate closed]; 
} 

在哪裏「封閉」是,我想調用的方法。