オプションのプロトコルメソッドが実装されているかどうかを確認する最良の方法を知っている人はいますか?
私はこれを試しました:
if ([self.delegate respondsToSelector:@selector(optionalProtocolMethod:)] )
デリゲートは次のとおりです。
id<MyProtocol> delegate;
respondsToSelector:
しかし、関数がプロトコルに見つからないというエラーが表示されます!
オプションのプロトコルメソッドが実装されているかどうかを確認する最良の方法を知っている人はいますか?
私はこれを試しました:
if ([self.delegate respondsToSelector:@selector(optionalProtocolMethod:)] )
デリゲートは次のとおりです。
id<MyProtocol> delegate;
respondsToSelector:
しかし、関数がプロトコルに見つからないというエラーが表示されます!
respondsToSelector:
NSObject
プロトコルの一部です。含めることNSObject
でMyProtocol
問題が解決するはずです:
@protocol MyProtocol <NSObject>
@optional
-(void)optionalProtocolMethod:(id)anObject;
@end
私がしているのは、次のレシピを適用することです。
if(self.delegate && [self.delegate respondsToSelector:@selector(closed)]){
[self.delegate closed];
}
「closed」は呼び出したいメソッドです。