2009-02-04 59 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]; 
} 

在哪里“封闭”是,我想调用的方法。