IOS异步请求为什么不能执行闭包中的内容?

 //代码如下
func startRequest(postData:NSData)->NSData{
    var Data:NSData!
    
    let URL=NSURL(string: String("http://111.111.111.111:8080/xxxxxx/login.action"))
    let request = NSMutableURLRequest(URL: URL!)
    request.HTTPMethod = "POST"
    request.HTTPBody = postData
    NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue(), completionHandler:{
        (response, data, error) -> Void in        
        if (error != nil) {
            print(error)
        }else{
            print(NSString(data: data!, encoding: NSUTF8StringEncoding))
        }
        
    })
    return Data
}

}

阅读 3.3k
1 个回答

解决问题最好的办法就是打印然后加断点
先打印Data看有没有值
这个闭包是请求完毕以后执行的,如果半天不执行,可能是一直在请求过程中,也没有返回任何东西,所以程序没有执行到闭包之中。
。。。。。
当我仔细看了一下以后,你这个 return Data是返回的什么,不就是刚开始var Data:NSData!这个么,等于什么都木有。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题