ファサード クラスを介してクラス メソッドを転送するのに苦労しています。
明確にするために、次のすべてのメソッドをオーバーライドしています。
-(NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector
-(void)forwardInvocation:(NSInvocation *)anInvocation
+(BOOL)instancesRespondToSelector:(SEL)aSelector
+(NSMethodSignature *)instanceMethodSignatureForSelector:(SEL)aSelector
+(IMP)instanceMethodForSelector:(SEL)aSelector
+(BOOL)resolveClassMethod:(SEL)sel
+(BOOL)resolveInstanceMethod:(SEL)sel
.. それでも、クラス メソッドの場合、呼び出されるのは+resolveClassMethod
. そこから、YES を返すか NO を返すかに関係なく、すぐに認識されないセレクター例外が発生します。
どうしたの?
クラス メッセージ転送は、インスタンス メッセージ転送とは異なる動作をしますか? 同様に、クラス メソッド
がないのはなぜですか。+forwardInvocation
どんな助けでも大歓迎です。