I've seen a lot of code, including Apple's SimpleURLConnections sample, that simply cast any NSURLResponse to a NSHTTPURLResponse. If it is always a NSHTTPURLResponse why do the NSURLConnections not return NSHTTPURLResponse?
I'm worried that if I simply downcast the response, I'm introducing buggy code.
For instance, is it OK to do this without checking isKindOfClass?
- (NSURLRequest *)connection:(NSURLConnection *)connection willSendRequest:(NSURLRequest *)request redirectResponse:(NSURLResponse *)redirectResponse
{
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse*)redirectResponse;
// do stuff
}
It is ok if you are sure that your connection runs via HTTP protocol:
An NSHTTPURLResponse object represents a response to an HTTP URL load request. It’s a subclass of NSURLResponse that provides methods for accessing information specific to HTTP protocol responses.
If you are connecting via FTP, for example, then casting NSURLResponse
to NSHTTPURLResponse
will be incorrect.