2016-09-16 47 views
0

我想調用一個API及其應用程序的一部分,但我想確保我得到我要調用的網站的狀態代碼(以防止運行時錯誤)。我無法獲得URLResponse的狀態碼,但我可以通過HTTPURLResponse獲取它。我如何用後者代替前者?使用HTTPURLResponse代替URLResponse

let requestURLString = "my_http_url" 
    let requestURL = URL(string: requestURLString) 
    let config = URLSessionConfiguration.default 
    let session = URLSession(configuration: config) 
    let ETAreq = session.dataTask(with: requestURL!) 
    { 

     (data, response (this is the URLResponse), error) in 

     if error == nil 
     { 

      //switch (this is where I will put switch of status code) 

     } 

    } 

回答

0

雖然,和HTTPURLResponse被重命名爲失去NS - 前綴。他們仍然是類,HTTPURLResponse是的子類。

HTTPURLResponse

您可以使用as?as!

if 
     error == nil, 
     let httpResponse = response as? HTTPURLResponse 
    { 
     switch httpResponse.statusCode { 
     case 200: 
      //... 
      break 
     //... 
     default: 
      break 
     } 
    } else { 
     //error case here... 
    } 
+0

非常感謝它的實際工作! –