クラスインスタンスのメソッドを呼び出すと、そのメソッドに関連付けられたデリゲートメソッドが起動しないという構造的な理由はありますか?関連するメソッドが内部的に呼び出された場合にのみ、委任メソッドが呼び出されるようです。
クラスA:
-(void)methodB //public
{
NSURLConnection *url = [[NSURLConnection alloc]init];
url.delegate = self;
[url start];
}
- (void)connection: (NSURLConnection *)connection didReceiveResponse: (NSURLResponse *)response //delegate Method C
{
NSLog (@"Connection worked");
}
クラスX内のいくつかの方法:
ClassA *littleA = [[ClassA alloc] init];
[littleA methodB];
問題がconnection:didReceiveResponse:
が呼び出されていないということです。
ただし、ClassA
のインスタンスメソッド内から[self methodB]
を実行すると、明らかに動作します。
を言ったこれは、少なくともいくつかのダミーコードなしで従うことが少し難しいです。あなたはメソッド 'M'を再実装していますか、スーパークラスの実装を使用していますか?あなたはどこから 'D'が呼ばれることを期待していますか? –
'methodB'と' methodC'の関係を明確にできますか? – aqs
私はちょうど質問を危険にさらした、私はクラスのインスタンスを意味するとき、私はサブクラス、申し訳ありません、私はまだ学んでいると言っていた。 – Eric