2012-01-24 86 views
-2

是否有任何结构性原因,为什么在类实例上调用方法会使与该方法关联的委托方法不会触发?委托方法似乎只在内部调用关联方法时被调用

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]它显然工作。

+0

这是一个有点难以遵循没有至少一些虚拟的代码。你是重新实现方法'M',还是使用超类的实现?你希望从哪里调用D? –

+1

你能澄清'methodB'和'methodC'之间的关系吗? – aqs

+0

我只是冒着这个问题冒险,当我指的是类的实例时,我说的是子类,对不起,我还在学习。 – Eric

回答

1

的NSURLConnection的委托方法没有得到所谓的,因为你没有设置委托上述连接

NSURLConnection *url = [[NSURLConnection alloc]init]; 
url.delegate = self; 
[url start]; 
+0

这似乎并未影响结果。我也更新了这个问题。是否有同样的方式使用自己在类中的实例没有翻译到我叫它的类? – Eric

+0

我不知道你是否错过了它,但你也应该设置NSURLConnection的URL – arclight