日々精進

新しく学んだことを書き留めていきます

delegateを使おうとするとEXC_BAD_ACCESS

以下のようにDelegateプロパティをクラスAに作って、

@property (nonatomic, weak) NSObject *delegate;

そのクラスの親クラスでdelegateを設定して

self.handler.delegate = self;

クラスAからdelegateオブジェクトにメッセージを送信するとEXC_BAD_ACCESSになった。

// self.delegateにアクセスするとエラー
if(self.delegate && [self.delegate respondToSelector:@selector(method)]){
  [self.delegate peformSelector:@selector(method)];
}



delegateの宣言部を以下のようにしてprotocolを指定してやると直った。

@property (nonatomic, weak) id <HandleControllerDelegate> delegate;

Delegateの使い方勉強せねば。。