来自NSURLConnection的NSURL?

jbr*_*nan 4 cocoa nsurlconnection nsurlrequest

这似乎很简单,因为创建一个NSURLConnection我通常这样做:

NSURL *theURL = [NSURL URLWithString:urlString];
NSURLRequest *req = [NSURLRequest requestWithURL:theURL];
NSURLConnection *connection = [NSURLConnection connectionWithRequest:req delegate:self];
Run Code Online (Sandbox Code Playgroud)

但是如何在委托方法中获取URL?没有自己挂在他们身上(我一次运行很多连接,所以这变得有点凌乱).好像我应该能够从连接中获取URL.

我错过了什么吗?

Cor*_*ger 9

In -connection:didReceiveResponse:你可以获得URL.请注意,这可能与您创建连接的URL不同,因为连接可能已被重定向.

- (void)connection:(NSURLConnection *)connection 
            didReceiveResponse:(NSURLResponse *)response {
    NSURL * url = [response URL]; // The URL
}
Run Code Online (Sandbox Code Playgroud)

  • 我不确定你说的是什么,但听起来你正在使用单个代表进行多个连接.我不建议这样做,因为您经常根据委托方法中收到的响应和数据设置实例变量.您可能应该创建一个类,其唯一目的是成为委托,并为每个连接实例化一个新类. (2认同)