swift http请求崩溃nil值

时间:2016-10-13 12:37:32

标签: swift http

我使用以下代码从php页面检索响应。它的工作正常,除了每隔一段时间在接收到以下行的零值后崩溃并出现错误:

  

让responseString = NSString(data:data!,encoding:String.Encoding.utf8.rawValue)

有没有办法可以抓住这个?



let myUrl = NSURL(string: "https://*****backend/newmessage.php")
        let request = NSMutableURLRequest(url: myUrl! as URL)
        request.httpMethod = "POST"
        let postString = "userid=\(userid!)"
        
        print(postString)
        request.httpBody = postString.data(using: String.Encoding.utf8)
        let task = URLSession.shared.dataTask(with: request as URLRequest) {
            data, response, error in
            DispatchQueue.global(qos: DispatchQoS.QoSClass.default).async {
                let responseString = NSString(data: data!, encoding: String.Encoding.utf8.rawValue)
                if error != nil {
                    print("Error: \(error)")
                }
                DispatchQueue.main.async() {
                    
                    print(responseString!)
                    
                    if (responseString! == "NEW"){
                        
                        self.messageIcon.setImage(UIImage(named: "newmessage.png"), for: UIControlState.normal)
                        
                    }else{
                        
                        
                        self.messageIcon.setImage(UIImage(named: "envelope.png"), for: UIControlState.normal)
                        
                        
                    }
                    
                    
                }
            }
        }
        task.resume()




1 个答案:

答案 0 :(得分:1)

为什么不用if-else声明来解决潜在的问题?或者,您可以使用guard语句。

if responseString != nil { // do stuff } else { // do other stuff}