响应数据为零 [英] response Data is nil

查看:107
本文介绍了响应数据为零的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在获取响应数据nil.

func fetchSinglePageData() {
    var response: NSData?
    var errors: NSError?
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), {

        response = NSData(contentsOfFile:"url...?project_id=(self.projectID)&project_page=Request", options: NSDataReadingOptions(0), error: &errors)

        print("LatestURL Single page:(response)")

        if response == nil {
            var alertview = UIAlertView(title: "Network Error", message: "Data not received due to network connection.Try again...", delegate: self, cancelButtonTitle: "Ok")
            alertview.show()
        }
        else{
            let jsonDict: NSDictionary = NSJSONSerialization.JSONObjectWithData(response!, options: nil, error: &errors) as NSDictionary
            print("JSON Response Single page:(jsonDict)")
            var statuses = [NSObject : AnyObject]()
            self.lblstartTime?.text = jsonDict["start_time"] as? String
            self.lblcurrentStage?.text = jsonDict["current_stage"] as? String
            self.lblcompletionTime?.text = jsonDict["completion_time"] as? String
            self.lblManager?.text = jsonDict["manager"] as? String
        }
    })
}    

project_id是一个字符串,该字符串是从上一页正常工作后改写的.

project_id is string which is recevied from presvious page which is correctly working.

推荐答案

func singlePageData(){

    var errors: NSError?

    let urlString = "http://phpyouth.com/clients/halfpricedgrannyflats/app/app_response.php?project_id=\(self.projectID)&project_page=Request"
    print("URL RESPONSE  \(urlString)")

    let request = NSURLRequest(URL: NSURL(string: urlString), cachePolicy: .ReloadIgnoringLocalCacheData, timeoutInterval: 50)

    let session = NSURLSession.sharedSession()

    let task = session.dataTaskWithRequest(request) { (data, response, error) in

        if error != nil{
            //handel error
            print(error!.localizedDescription)
            var alertview = UIAlertView(title: "Network Error", message: "Data not received due to network connection.Try again...", delegate: self, cancelButtonTitle: "Ok")
            alertview.show()
            return
        }

        if let responseData = data{

              var jsonDict: NSDictionary = NSJSONSerialization.JSONObjectWithData(responseData, options: NSJSONReadingOptions.MutableContainers, error: &errors) as NSDictionary!

            dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), {

            println("Json dict value  \(jsonDict)")
            self.lblprojectName?.text = jsonDict["name"] as? String
            println("lblprojectName:  \(self.lblprojectName?.text)")
            self.lblstartTime?.text = jsonDict["start_time"] as? String
             println("lblstartTime :  \(self.lblstartTime?.text)")
            self.lblcurrentStage?.text = jsonDict["current_stage"] as? String
             println("lblcurrentStage :  \(self.lblcurrentStage?.text)")
            self.lblcompletionTime?.text = jsonDict["completion_time"] as? String
             println("lblcompletionTime :  \(self.lblcompletionTime?.text)")
            self.lblManager?.text = jsonDict["manager"] as? String

            })

            }
        }
    task.resume()

}

这是我根据Jitendra Solanki的回答,我对代码进行了更改,现在可以在Swift 1.2中使用

This is my answer as per Jitendra Solanki answer i have made changes to code and it is now working in Swift 1.2

这篇关于响应数据为零的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆