[英]When is a NSURLResponse not a NSHTTPURLResponse?
我已經看到很多代碼,包括Apple的SimpleURLConnections示例,只是將任何NSURLResponse轉換為NSHTTPURLResponse。 如果它始終是NSHTTPURLResponse,為什么NSURLConnections不返回NSHTTPURLResponse?
我擔心如果我簡單地低估了響應,我就會引入錯誤的代碼。
例如,沒有檢查isKindOfClass就可以這樣做嗎?
- (NSURLRequest *)connection:(NSURLConnection *)connection willSendRequest:(NSURLRequest *)request redirectResponse:(NSURLResponse *)redirectResponse
{
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse*)redirectResponse;
// do stuff
}
更安全的方法是內省。
if ([response isKindOfClass:[NSHTTPURLResponse class]]) {
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse*)redirectResponse;
// do stuff
}
如果您確定您的連接通過HTTP協議運行,則可以:
NSHTTPURLResponse對象表示對HTTP URL加載請求的響應。 它是NSURLResponse的子類,提供訪問特定於HTTP協議響應的信息的方法。
例如,如果您通過FTP連接,則將NSURLResponse
為NSHTTPURLResponse
將不正確。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.