簡體   English   中英

從“NSData”轉換為不相關的類型“NSHTTPURLResponse”總是失敗

[英]Cast from 'NSData' to unrelated type 'NSHTTPURLResponse' always fails

我有這個代碼:

let task = session.dataTaskWithRequest(request, completionHandler: { (data, response, error) -> Void in

            guard let response = data else {
                print("Error: did not receive data")
                return
            }

            guard error == nil else {
                print("error")
                print(error)
                return
            }

            let httpResponse = response as! NSHTTPURLResponse
            let statusCode = httpResponse.statusCode

            if (statusCode == 200) {
                print("OK!!!")
            }
        })

        task.resume()

在這一行: let httpResponse = response as! NSHTTPURLResponse let httpResponse = response as! NSHTTPURLResponse我有一個奇怪的警告: Cast from 'NSData' to unrelated type 'NSHTTPURLResponse' always fails

我應該如何擺脫它? 謝謝!

您正在將data內容解包到名為response的常量中。 這是您問題的根源,因為那時您正在使用一個,認為您正在使用另一個。

另外,為什么要強行解開沮喪的東西?

最好像你已經做的那樣繼續使用guard

例子:

let task = session.dataTaskWithRequest(request, completionHandler: { (data, response, error) -> Void in

    guard let data = data else {
        print("Error: did not receive data")
        return
    }

    guard error == nil else {
        print("error")
        print(error)
        return
    }

    guard let httpResponse = response as? NSHTTPURLResponse else {
        print("response unavailable")
        return
    }

    let statusCode = httpResponse.statusCode

    if statusCode == 200 {
        print("OK!!!")
    }
})

task.resume()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM