** Ответ действителен только до iOS5. Начиная с iOS5, Apple представила метод -originalRequest, который позволяет избежать дальнейшего подкласса для этой специальной цели. В общем, Apple представила класс NSURLConnection так много улучшений, что больше не нужно создавать подкласс NSURLConnection, если не требуется нетривиальное поведение **
Вы можете создать подкласс NSURLConnection, добавив дополнительное свойство с именем
NSURL <em>originalURL
и затем запустив его. Когда выполняется метод завершения делегата, вы можете получить это свойство и выполнить оставшуюся часть работы. *
например. (Я покажу соответствующие части, не копируйте и не вставляйте, пожалуйста):
MyURLConnection.h<br><br>
<code>
@interface MyURLConnection:NSURLConnection {
@property (nonatomic,retain) NSURL *originalURL;
}
@end
</code>
MyURLConnection.m<br><br>
<code>
@implementation MyURLConnection
@synthesize originalURL;
</code>
In your calling class:<br><br>
<code>
MyURLConnection *myConnection = [[MyURLConnection alloc] initWithRequest:myRequest delegate:myDelegate];
myConnection.originalURL = [request URL];
[myConnection start];
</code>
and finally in the delegate:
<code>
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
MyURLConnection *myConn = (MyURLConnection)connection;
NSURL *myURL = myConn.originalUrl;
// following code
}
</code>