似乎只在内部调用关联方法时才调用Delegate方法

时间:2012-01-24 18:45:57

标签: objective-c ios delegates

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

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");
}

Class X中的一些方法:

ClassA *littleA = [[ClassA alloc] init];
[littleA methodB];

问题在于connection:didReceiveResponse:没有被调用。

但是,如果我从[self methodB]的实例方法中执行ClassA,它显然有效。

1 个答案:

答案 0 :(得分:1)

由于您尚未为所述连接设置委托,因此未调用NSURLConnection委托方法

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