0

私は1つのクラスと1つのView Controllerを持っています。クラスには _delegate RespondsToSelector:selector があります。しかし、メソッド(セレクター)を呼び出していません。以下の私のコードを見た後、何が間違っているのか教えてください。参考までに、このコードは以前は機能していましたが、突然機能しなくなりました。

MyClass.h:

@protocol MyClassDelegate <NSObject>

@optional
-(void) receivedEvent:(TripEvent *) event;
@end

@interface MyClass : NSObject<MyClassEngine>

@property(assign) id<MyClassDelegate> delegate;
@property BOOL delegateOnMainThread;

-(id) initWithDelegate:(id<UbiTripRecorderDelegate>) tripDelegate
      onMainThread:(BOOL) onMainThread;

- (void) dispatchDelegate:(SEL)selector
           withObject:(id)obj;

MyClass.m には次のコードが含まれています。

#import "MyClass.h"

@implementation MyClass
....
....
-(void) startPlaying {
    [self dispatchDelegate:@selector(receivedEvent:) withObject:newEvent];

}

- (void) dispatchDelegate:(SEL)selector   withObject:(id)obj {
   @try {
      if(_delegate && [_delegate respondsToSelector:selector]) {
       NSLog(@"I can't come to this point");
       }
    }
}

また、ビュー コントローラー (MyViewController.h) に次のコードを追加しました。

@interface MyViewController : BaseViewController<MyClassDelegate>

そして最後に MyViewcontroller.m にメソッドを実装しました:

-(void) receivedEvent : (TripEvent *) event {
    NSLog(@"I'm called");
}

問題は、if(_delegate && [_delegate RespondsToSelector:selector]) - ロジックが true を返さないことです。私のコードに何か問題がある場合は、誰でもコードをチェックして知らせてもらえますか?

4

1 に答える 1